web-dev-qa-db-ja.com

テクノロジーを他のテクノロジーよりも正当化するにはどうすればよいですか? (.NET上のJava)

私たちはJava/.NET会社と私のチームで働いており、クライアントのためのプロジェクトを計画しています。

要件の1つは、プロジェクトを.NETで実行する必要があることです。

私はこの要件について尋ねましたが、クライアントはそれは問題ではなく、正当な理由があれば他のテクノロジーを使用できると述べました。しかし、私は決定を正当化する必要があります。

プロジェクトマネージャー/アナリストとして、Javaでプロジェクトを作成することに興味があります。

  • チームは、言語とフレームワークに関してJavaよりよく知っています。
  • .NETテクノロジについては何も知りません(そして、Javaやり方で考えて)、間違った判断をする可能性があります)
  • .NETでより多くのスキルを持っている会社の他の人々がいますが、彼らはより優先順位のある他のプロジェクトを持っています。

経験上、Javaを使用すれば、プロジェクトの品質ははるかに高くなると思います。しかし、この議論はクライアントの観点からは弱いかもしれません。

Javaでプロジェクトを作成することを正当化するにはどうすればよいですか?

編集:私は、ある技術が他の技術より優れているかどうかを尋ねているのではありません。 「それは技術戦争ではない」という質問。

7
user674887

Javaでより良い品質の製品を製造するという主張はなぜ弱いのですか?

使い慣れたテクノロジーを使用して、(比較的)必要なソリューションを簡単に実装できると想定(開発者として)知っているテクノロジーをいくつかの理由で使用する必要があります。

  • ライブラリ、フレームワーク、およびツールに精通しているため、作業が速くなります。
  • 同じ理由で、より高品質の製品を製造できます。これにより、次のことが可能になります。
    • したがって、製品の安定性が高くなるほど、サポートコールが少なくなります。
    • 拡張機能の開発が容易

逆に、なじみのない技術を使用すると、開発につながる

  • もっと時間がかかる
  • エラーが発生する可能性が高くなり、より多くのサポートが必要になる
  • 将来拡張するのが難しくなる

明らかにこれは、あるテクノロジーを別のテクノロジーではなく使用するビジネスケースがない場合にのみ当てはまります。そのようなケースは、顧客が.NETのインフラストラクチャとITスキルを持ち、Java(またはその逆)ではない)場合です。

16
ChrisF

私は、この惑星に品質を弱い議論だと考えるクライアントはいないと思います。

ただし、プロジェクトマネージャー/アナリストとして、私はあなたがこの決定を下すのは本当のはずではないと思います。チームに何を使用したいのか、そしてその理由を尋ねます。それが顧客に説明できる理由でなければならないことを明確にしてください(つまり、「CVに.NETが欲しい」よりも顧客にとって有益なものです)。 オートノミーはソフトウェア開発者にとって最大の動機です そして技術的な選択を彼らに許可することが重要です。彼らは決定するのに最も適した人であり、彼らは決定に生きなければならない人です。

.NETを選択する正当な理由がある場合は、許可してください。テクノロジーに関する知識の不足は関係ありません。しかし、最も使いやすいものを選択する可能性が高いため、Javaを選択するのは完全に良い理由です。

3
pdr

私はあなたの立場に立って、間違いなくJavaを選びますが、私が理解している限り、あなたはすでに決定を下しています。あなたの問題は、クライアントに決定を説明する方法です(私を訂正してください)私が間違っている場合)。

あなたのチームは.NetよりもJava)でより経験があると私は彼/彼女/彼らに話します。

あるクライアントに対して安価なマーケティングの決定を行わず、Javaはそのプロジェクトに適していると言います。それは大きな嘘になるでしょう。NetがJava。これは.Netの経験がなく、このプロジェクトに適しているかどうかわからないためです。

2
tugberk

簡単な回答:

Javaは、優れた、安定した、最新のプログラミングフレームワーク(テクノロジー)であり、長年の経験があります。 (あなたはあなたの顧客にそれを言うことができます)

長く、つまらない、説明的、哲学的な答え:

他の投稿で述べたように、あなたはすでに答えを持っています。あなたのチームはJava "技術"よりも ".NET" "技術"の経験が豊富です。

どちらのテクノロジーにも優れた機能がありますが、学ぶには時間とスキルが必要です。 「.NET」にはいくつかの拡張機能があります。

「廃止された」、「十分なライブラリ」がない、「国際言語をサポートしていない」などの理由でそれらを破棄することはできません。

提案Javaフレームワーク。

それでも、開発者の一部に、本ではなく「現実の世界」の要件を備えた「.Net」で実践することを検討することができます。

たとえば、自由な時間に、同じD.B.のコピーを使用して、同一の目的を持つフォームまたはWebページを作成させます。それが時間の無駄だと思われる場合でも。このようにして、別の顧客が到着し、同様のアプリが必要になったときに準備を整えますが、「。NET」を使用します

Oracle、それはJava=を軌道に乗せ始めました。

ちょうど私の2チーズバーガー(2セント)。

1
umlcat

誰もコストについて言及していないことに驚いています。 Javaは無料でプラットフォームに依存しませんが、.netはフレームワークの維持と購入にクライアントに多くのコストをかけます。どのくらい議論するのですか-最後に、JVMはすべてのOSとCLRで無料で出荷されません。

0
A4coder

私はむしろプログラマーとしてではなく、マネージャーとして答えたいと思います。私は、開発が手頃な価格で柔軟であり続ける私の部門内の未来を担当しています。

Javaが複数のプラットフォームで動作できるため(実際にJavaアプリをプラットフォーム間で移行しますか?))、開発者が(Javaは環境の1つとしてのみ機能します)複数のプラットフォームで機能します。テクノロジーを学ぶのにむずむずしている多くのスキルを持つ開発者を育成することについて、私はもっと心配しています。

私が.Netを購入したのは、安価なプログラマーを雇ったり、Windowsを使い続けることができる(おそらく管理が簡単だ)だけなのだから、開発者コミュニティを1つのプラットフォームに固定します。保証されている唯一の未来は、Microsoftがそれを変更する方法を見つけて、私にその特権をさらに請求することです。

0
Drew