私はこれについてしばらく考えていました。新しいプロジェクトを計画しているとき/組織内の既存のプロジェクトを維持しているとき、どのようにテクノロジーを選択しますか(Java対.Net対PHPについて話しているのではありません)。
最新のテクノロジーを選ぶための議論
- 既存のテクノロジーの制限のいくつかを克服する可能性があります(スケーラビリティに関しては、SQLとRDBMSは考えないでください)。最新のテクノロジーには下位互換性があり、古い機能を壊すことなく新しい機能を取得することしかできない場合があります
- それはより良いユーザーエクスペリエンスを提供します(ビデオのHTML 5かもしれませんが、考えてみてください)
- 開発時間/コストを削減し、コードベースのメンテナンスを比較的簡単にします
現場でテストされたテクノロジーを選択するための議論/最先端のテクノロジーを選択することに対して
- それは時の試練に耐えていません。予期しない問題が発生する可能性があります。複雑なソリューションは、メンテナンスフェーズでより多くの問題を引き起こす可能性があり、アプリケーションは白象になる可能性があります
- 基準がまだ整っていない可能性があります。プロジェクトを標準に準拠させるには、標準が変更され、大幅なやり直しが必要になる場合があります。フィールドテスト済みのテクノロジを選択すると、これらの労力を節約できます。
- 新しいテクノロジーは、組織によってサポートされていない可能性があります。新しい(または、さらに言えば、別のテクノロジー)をサポートするには、追加のリソースが必要になります
- 最先端のテクノロジーで適格なリソースを取得するのは難しいかもしれません
開発者の観点からは、(暇なときに)新しいテクノロジーで手を汚さない理由はわかりませんが、彼/彼女はオープンソース/フリーウェア/開発者版に限定されている可能性があります
組織の観点からは、両刃の剣のように見えます。「フィールドテスト済み」のテクノロジーに長く座りすぎると、善良な人々が立ち去る可能性があります(知識の更新を拒否する、使い慣れたテクノロジーを好む人々が常にいることは言うまでもありません)。型破りなアプローチを試してみてください。予期しないリスクは言うまでもなく、予算/時間を超過するリスクがあります。
TL; DR
結論。組織が採用できるほど成熟したテクノロジーはいつだと思いますか?