言語またはフレームワークの新しいバージョンにアップグレードする場合
-
05-07-2019 - |
質問
フレームワークまたは言語の新しいバージョン(例:.NET 3.5、SQL2008)が登場したとき、人々はいつ採用/アップグレードするかについてどのようなアプローチをとりますか?
通常、開発者はできるだけ早く発言します(CVで望み、彼らが望むものを提供する管理の観点からモチベーションを高める)コストの観点(再テスト、トレーニング)には、多くの場合阻害要因があります。
特に「進行中」のことを考えています「ソフトウェアプロジェクトのような」システムとプロジェクトが存在し、「新しいプロジェクトが新しいテクノロジーを使用する」ことを長年にわたって進化させています。アプローチが機能しません。
特定の要件(新しい機能を使用する必要性、潜在的または既存のクライアントがそれをサポートする必要がある)に駆動されているか、正式に評価するか(その場合は基準は何か)、問題としてアップグレードするかルーチンの(その場合-リーディングエッジvs.ブリーディングエッジ)?
何かの最新バージョンに載っていないことは技術的負債と見なされ、そのように管理されるべきだと人々は思いますか?
または「壊れていない場合は修正しないでください」有効なアプローチですか?
解決
技術的債務をご覧ください。これは単純な費用対効果の決定です。
「破損していない場合は修正しないでください」」 「明日のドルは今日ほど価値がないので、将来の改善を計画しないでください」という一般的な管理ポリシーです。最終的には技術的な負債が蓄積し、製品がもう弱くなることがなくなります。
最も一般的なブレークポイントは、インフラストラクチャの一部がサポートされなくなった場合です。それまでに、段階的な変更は不可能です。
ゼロから再発明することは、新しい設備投資です。既存のコードの修正は費用がかかります。アカウントは、管理者に技術的に狂った決定をすることを強制します。
オープンソースソフトウェアの場合、公式の「サポートの終了」がないため、慎重な技術管理が必要です。 Oracle / Sunからの発表。もちろん、不適切な技術管理は技術的な破産につながります。
他のヒント
サポートライフサイクルコストを確認します。古いバージョンはどのくらいの期間サポートされますか? WindowsやJavaなどのプラットフォームは、メインフレーム環境と比較して高速で移動する傾向があり、これらのプラットフォームでビジネスを行うためのコストの一部は、定期的なアップグレードを実行することです。合理的な世界では、それは!
新しいバージョンには、必要なキラー機能がありますが、エンタープライズ開発ではめったにありません。新しいバージョンの主な肯定的なセールスポイント(サポートの期限切れなどの否定的なものとは対照的に)は、開発者の効率の向上である傾向があり、測定が困難です。それに対して、あなたが示すように、再訓練のコストは、最初の開発者だけでなく、決定的には、メンテナンスのために考慮されなければなりません。アップグレードするたびに、一部のアプリケーションは、廃止するには重要すぎ、アップグレードするにはコストがかかりすぎます。時間が経つにつれて、サポートする必要があるプラットフォームとバージョンの数により、全体的な技術的負債が増加します(年齢に関係なく)。
新しいバージョンにアップグレードするためのもう1つの基準(注意)は、スタッフを引き付けて維持する能力です。現在の経済段階では、それは2番目のフィドルを果たしていますが、それでも完全に無視することはできません。熱心で知識豊富な開発者の少なくとも調味料が必要です。
致命的な問題は、プラットフォーム/言語バージョンをアップグレードしない場合、アプリが長期にわたって存続するかどうかだと思います。できないと思う場合は、難しくなるだけなので、後ではなく早くアップグレードすることもできます。
完全な書き換えが必要になるまで、アプリを積極的に開発する期間を考えてください。書き換える予定がない場合は、継続的にアップグレードします。時代遅れのテクノロジーで作業している場合、最高の開発者を見つけることがどれほど困難になるかを考えてください。新しいフレームワーク/言語機能が、短期的には少し苦痛を伴うものの、長期的に開発プロセスを高速化する方法を検討してください。
本当に必要なとき。 .NET 1.0は安っぽく、1.1はすばらしいアップグレードでしたが、VS2003でのWeb開発はそれほどスムーズではありませんでした。 VS2005と.NET 2.0で改善されたもの–まだ多くの開発者や企業が.NET 2.0に固執しているようです。以前のバージョンはとても新鮮で、バージョン2.0は成熟した技術でした。それでは、1.1に満足しているなら、なぜアップグレードするのでしょうか? 2.0に満足しているなら、なぜ3.5または4.0にアップグレードするのですか?
アップグレードの利点(より多くの機能、または必要なバグ修正)が関連するリスク/コスト(新しい問題、既存のコードの破壊)を上回る場合。
Windows用のWindows FormsアプリやWindows Server用のASP.NET Webアプリなど、Microsoftベースのプラットフォーム用に開発する場合、移行する良いタイミングはOSの2つのメジャーバージョンごとです。たとえば、アプリが開発されている場合Windows 2000の場合、XPは無視できますが、Vistaに移行する必要があります。同様に、XP SP2用に設計されている場合は、Vistaを無視してWin 7をターゲットにすることができます。したがって、今日のOSで実行されているアプリは間違いなく次のOSでも実行されます。しかし、それに続くものでは決してありません。 (M $でお金を稼ぐ方法は????)
出典:Self ... 5年以上のWindows開発者)
できるだけ早くアップグレードを開始します(未確認の問題に備えて、新しいバージョンがリリースされてから1か月待つかもしれませんが)。考えなければならないことがいくつかあります:
1。セキュリティリリース
壊れていないかどうかを教えてくれる人の多くは、それを修正しないでください。セキュリティパッチがリリースされたときに2つ目を閉じる人もいます。 Equifaxを考えてください。
私にとって、少なくともセキュリティがサポートされているフレームワークのバージョンを使用することは倫理的な責任です。データを保護するのはお客様の義務です。
2。誘致&人材の保持
使用されるプログラミング言語またはフレームワークが重要ではない方法については、多くの話があります。しかし、私の経験では、Webアプリの最もクリーンなコードとデザインは、通常、フレームワークに情熱を傾ける人々によって書かれています。経験のために使用されるプログラミング言語&それに関する専門知識。
これらの人々は、あなたが非常に古いバージョンに固執する場合、長く滞在したり、あなたの会社に参加したりすることはまずありません。開発者の幸福について考えてください。
3。新しいバージョンで提供される新しい、よりシンプルな方法
フレームワークの非常に新しいバージョンは、過去の何かを非常に簡単にすることがよくあります。アップグレードしない場合、優れた新しいパッケージ/機能を利用できず、同じ機能を実現するはるかに簡単な方法があることを知って、古いフラストレーションのある方法でコードを記述します。そして、アップグレードするときが来ると、新しい方法に再び変更しなければならない場合があります。では、アップグレードして新しいより良い方法を使用し、時間を無駄にしないようにしましょう。