フォーマルなアーキテクチャ仕様は、アジャイル開発にどのように適合しますか?アジャイル開発とアーキテクチャ
私は公式の人工物の中でアーキテクチャについて言及していないスクラムについて具体的に考えています。
最初の製品のバックログを組み立てる前に、アーキテクチャーを「偶然」(話すために)進化させたり、それを非公式に仕様化したり、4 + 1スペックアップの余地がありますか?
フォーマルなアーキテクチャ仕様は、アジャイル開発にどのように適合しますか?アジャイル開発とアーキテクチャ
私は公式の人工物の中でアーキテクチャについて言及していないスクラムについて具体的に考えています。
最初の製品のバックログを組み立てる前に、アーキテクチャーを「偶然」(話すために)進化させたり、それを非公式に仕様化したり、4 + 1スペックアップの余地がありますか?
アジャイルは、「今すぐ実行する必要があるものだけを実行し、後でさらに必要なものがあれば後でリファクタリングする」と記述されることがよくあります。
これはむしろ誤解を招くことです。 「今すぐすぐに何かをかけることができますし、将来的にもっと多くのことをするためにそれをアップグレードする方法」を読むことができます。苦痛と技術的負債の世界につながるでしょう。
どのシステムでも、デザインが必要です。小規模/シンプルなシステムの場合、この設計はあなたの頭の中にあるかもしれませんが、システムが何をするのか、そしてそれをやるのが最善であるかについて考える前に考える必要があります。
だから、アジャイルアプローチにデザインを組み込む正しい方法は、システムが最終的に何をすると予想されているかを知るようになりました。あなたは橋を焼かない柔軟な設計を思いついてください。しかし、すべてのナットとボルトの正式な詳細仕様書を書く時間を無駄にしないでください。サブシステムがどこにどのように適合するかを知るレベルまで設計しますが、それを実装する必要がある場合にのみ設計できる「ブラックボックス」として扱うことができます。
アジャイル開発では正式なアーキテクチャを除外すべきではありません。つまり、完成した時点ですべてのビットがうまく適合するだけの正式アーキテクチャを設計するだけで、そのデザインの細かい部分彼らが必要とされるときにのみ、必要とされます。時にはそれはまだかなり詳細なデザインが必要です。
あなたの範囲によって異なります。与えられた、緑のフィールドかもしれない。ちょうど十分なアーキテクチャ。あなたは最初のテストを書くことができる何かが必要であり、継続的な統合を行います。
それは文書なので、誰がそれを必要とし、何をしようとしていますか?
スクラムは、主にプロジェクト管理の手法であり、アーキテクチャには言及していません。
可能な限り、アーキテクチャは段階的に定義されています。レイヤーごとではなく、エンドツーエンドで実装すると、その点で役立ちます。各レイヤーの一部を実装することにつながります。
アーキテクチャの意思決定は元に戻すのが難しいかもしれないので、システムと顧客のニーズについてより多くの知識を持つ最後の責任ある瞬間に取り組まなければなりません。
正式な仕様の必要はありません。
アジャイルはアーキテクチャに重点を置いていません。これにより、ソフトウェアが将来使用可能になる可能性が低くなります。方法論のゲームは、アジャイルの利点と限界から学びます。より将来性のある拡張性のあるソフトウェアを作成します。 Digital Animalは、この方法論を確立するためにこの記事を書きました。 http://digitalanimal.com/blog/slaying-the-agile-dragon-the-game-of-thrones-methodology/
上記の品質の回答に加えて、ユーザーに表示される要件の定義を設計します。これは、ユーザと、最終的にはどのソフトウェアプロジェクトでも重要なユーザインタフェースに焦点を当てながら、ドメインモデルを構想するのに役立ちます。 –