アジャイル開発に対する私の理解は、本来あるべきほど良くないかもしれませんが、最終的なシステムがどうあるべきかについての要件と知識が十分にある場合、アジャイル開発者が既製 (OTS) ソフトウェアをどのように使用する可能性があるのか興味があります。私が理解している限り急速に変化します(多くの場合、開発の各反復の後)。
私にとって特に興味深い 2 つの状況があります。
(1) OTS システムは、既存のシステムへの潜在的な統合を除いて、ほとんどまたはまったく変更を加えずに、最初の一連の要件を満たします。しかし、開発を数回繰り返すうちに、このシステムはコア コードを書き直さなければニーズを満たせなくなりました。開発者は、この OTS ソフトウェアの背後にあるコア コードの学習にさらに時間を費やすか、それを捨ててゼロから構築するかを選択する必要があります。どちらも、開発時間とプロジェクト コストに大きな影響を与えます。
(2) 最初のニーズは、利用可能な既存の OTS システムとは異なりますが、最終的に顧客が製品を受け入れると、要件の追加と削除により、既存のソリューションに非常によく似たものになります。開発者がより多くの要件を抱えていて、事前にそれらの作業により多くの時間を費やしていた場合、このソリューションを再構築する代わりに使用できたはずです。プロジェクトは実現しましたが、遅れて必要以上のコストがかかりました。
ソフトウェア エンジニアとしての私の責任の 1 つは (教えられてきたように)、可能な限り低コストで高品質のソフトウェアを予定どおりに顧客に提供することです。アジャイル開発は高品質のソフトウェアを可能にしますが、場合によっては、手遅れになり、多額の費用が費やされるまで、より良い代替手段があることが明らかにならないことがあります。
私の質問は次のとおりです。
- 市販のソフトウェアはアジャイル開発にどのように適合しますか?
- アジャイルマネージャーとアジャイル開発者は、これらのケースにどのように対処しますか?
- これらのケースについて、アジャイル パラダイムは何と言っていますか?