3

アジャイル開発に対する私の理解は、本来あるべきほど良くないかもしれませんが、最終的なシステムがどうあるべきかについての要件と知識が十分にある場合、アジャイル開発者が既製 (OTS) ソフトウェアをどのように使用する可能性があるのか​​興味があります。私が理解している限り急速に変化します(多くの場合、開発の各反復の後)。


私にとって特に興味深い 2 つの状況があります。

(1) OTS システムは、既存のシステムへの潜在的な統合を除いて、ほとんどまたはまったく変更を加えずに、最初の一連の要件を満たします。しかし、開発を数回繰り返すうちに、このシステムはコア コードを書き直さなければニーズを満たせなくなりました。開発者は、この OTS ソフトウェアの背後にあるコア コードの学習にさらに時間を費やすか、それを捨ててゼロから構築するかを選択する必要があります。どちらも、開発時間とプロジェクト コストに大きな影響を与えます。

(2) 最初のニーズは、利用可能な既存の OTS システムとは異なりますが、最終的に顧客が製品を受け入れると、要件の追加と削除により、既存のソリューションに非常によく似たものになります。開発者がより多くの要件を抱えていて、事前にそれらの作業により多くの時間を費やしていた場合、このソリューションを再構築する代わりに使用できたはずです。プロジェクトは実現しましたが、遅れて必要以上のコストがかかりました。


ソフトウェア エンジニアとしての私の責任の 1 つは (教えられてきたように)、可能な限り低コストで高品質のソフトウェアを予定どおりに顧客に提供することです。アジャイル開発は高品質のソフトウェアを可能にしますが、場合によっては、手遅れになり、多額の費用が費やされるまで、より良い代替手段があることが明らかにならないことがあります。

私の質問は次のとおりです。

  1. 市販のソフトウェアはアジャイル開発にどのように適合しますか?
  2. アジャイルマネージャーとアジャイル開発者は、これらのケースにどのように対処しますか?
  3. これらのケースについて、アジャイル パラダイムは何と言っていますか?
4

4 に答える 4

4

シナリオ 1:

これは、コンポーネントの OTS の性質に関係なく発生する可能性があります。アジャイルとは、近視眼的という意味ではありません..大きなチャンク..フレームワークのビットを知り、事前にそれについて考える時間を費やす必要があります。そうは言っても、あなたが知っていることだけを構築することができます..最後の責任ある瞬間まで遅らせるだけです.次に、選択肢の1つを選択して開始する必要があります. (社内で開発するコストが実現不可能でない限り、サードパーティのアプリケーションは避けたいと思います..しかし、それは私だけです)。複数のソリューションのプロトタイプを作成し、既知の要件のリストを使用して実現可能性を確認します。物事を疎結合 (交換可能) にし、変更しやすく、完全にテストします。ハッキングを続けるか書き直すかの分岐点に達した場合は、どちらがビジネスにとってより価値があるかを考え、そのオプションを選択する必要があります。それは降りてくる

シナリオ 2:

チームが要件を「確定」するのに 2 ~ 3 か月を費やして、市場のニーズや顧客の考えが変化し、「今はこのようにしたい」ということを発見するためだけに、チームが 2 ~ 3 か月を費やすことに比べれば、可能性はわずかですが、これが発生する可能性があります。繰り返しになりますが、行動の道筋をたどる前に、調査と探索の準備ができているのはいつの時点であるかという問題です。その時点までに得た情報をもとに賢明に判断してください。要件が合体して既知の OTS コンポーネントに適合する時点まで待つことはできません :)

アジャイルは、意味のあることは何でも行い、付加価値のない活動を取り除くと言います:) アジャイルは特効薬ではありません。ちょうど私の2アジャイルセント:)

于 2008-09-09T12:48:37.440 に答える
3

それ自体は厳密な答えではありませんが、市販のソフトウェアをソフトウェア ソリューションのコンポーネントとして使用することは、次の場合に非常に有益であると考えています。

  • データはオープンです。たとえば、オープン データベースや、データとやり取りするための Web サービスなどです。
  • 市販のシステムは、ソリューションの残りの部分と同様のプログラミング パラダイムを使用して簡単にカスタマイズできます。
  • 残りのワークフローにシームレスに適応できます

私は車輪を再発明しないことの大ファンです.開発スキルを使用して、既製のソリューション間の「接着剤」を設計することは大きな勝利になる可能性があります.

「オープン」が重要な部分であることを忘れないでください。ベンダーは、実際にはそうではない場合でも、ソリューションをオープンであると宣伝することがよくあります。

于 2008-09-09T11:40:12.610 に答える
1

イテレーション中に、最初に考えていたよりも 20% 以上多くの作業があることに気付いた場合は、スプリントを中止し、追加の作業を考慮して新しいスプリントの計画を開始する必要があるとどこかで読んだと思います。

したがって、これは、あなたがより多くのことを知った今、彼らがまだ元の要件を進めたいかどうかを確認するためにビジネスを再計画することを意味します.

当社でもスプリント前のプロトタイピングを活用し、スプリントで発生する前にこのような状況を特定しようとしています。もちろん、それでもあなたが説明したような状況を特定できないかもしれませんが.

于 2008-09-09T11:47:14.733 に答える
1

C2 wiki ディスカッション: http://c2.com/cgi/wiki?BuyDontBuild

于 2008-09-09T13:07:30.967 に答える