アジャイルプロジェクトのアーキテクチャをどのように制御しますか? [閉まっている]
-
03-07-2019 - |
質問
どのようにしてプロジェクトが" good"でビルドされることを確認しますか?柔軟なソフトウェアアーキテクチャを実現する設計上の決定?
アーキテクチャを一方のチームに完全に任せることと、すべてのアーキテクチャを他方の少数の個人に制御させることとのバランスをどのように取るのですか?
「アーキテクチャグループ」、「アーキテクチャラベル」はありますか?またはそのようなものですか?
解決
アジャイルアプローチの前提条件は、すでに使用方法を知っているアーキテクチャです。
アーキテクチャが明確に定義されておらず、完全に理解されていない場合、アジャイルアプローチを実際に採用することはできません。
アーキテクチャがどのように機能し、さまざまな部分がどのように適合するかを示す技術的なスパイクが必要です。これらは予備のスプリントとして実行できますが、ユーザーへの直接的なリリースにはつながりません。これらは特殊なケースであり、使用できるアーキテクチャに到達するために必要です。
この「アーキテクチャを理解する」を終えたら、その後、ユーザーのリリースに直接つながるスプリントの実行を開始できます。
他のヒント
どのように行うかを説明することはできますが、これは私ができるよりも良いと言っています。
ファウラーの文書を読むこともお勧めしますデザインデッドです、彼が理解している限りすべてのアジャイルプラクティスを全体として考慮すると、大きな変更を加える自由が得られるため、アーキテクチャを進化させることができます。
リファクタリングは継続的な相互作用で最も効果的に機能し、テストはTDDと継続的な統合で強化されます...進化する「アーキテクチャ」は、「間違い」を修正するために必要な大きな変更を加えることができない場合にのみ制限されます。
さらに、プロジェクトの利害関係者としてアーキテクトがいると思います。アーキテクトはユーザーストーリーを提供し、それがアーキテクトに配信されます。
これは、ペアの一部として働いているアーキテクトとペアプログラミングを利用する良い方法でもあります。このコンテキストでは、アーキテクトは、ペアプログラミング中に開発チームのメンバーが着用するほど献身的な人間ではありません。
XPはアーキテクト(およびアーキテクチャ)の役割を損なうことなく、すべてのチームメンバーに責任を負わせ、プロジェクトの全期間にわたってコストを提供し、分散させるだけです。
[編集]
他のコメントごとに、事前の計画を恐れてはいけません。イタレーションゼロは、計画の一部を試してチャートを作成するのに適した時間です。
私の経験では、これを行う最良の方法は、経験豊富な開発者/アーキテクトが日々アーキテクチャビジョンを推進するプロジェクトに取り組んでいることです。
アーキテクチャを制御し、すべての新しい作業がそれに適合するようにするために、プロジェクトの開発主任までお勧めします。
事前にいくつかの計画を立てることでこれを処理します。一般に、これを支援するために同様のアプリケーションを使用した経験があります。そうでない場合、私はアイデアを得るためにスペースでいくつかの調査を行います。基本的なアーキテクチャがレイアウトされたら、優先順位付けされたストーリーに基づいて、それを念頭に置いて開発を開始します。その後、リファクタリングを行いながら、アーキテクチャの欠点やエラーに対処します。
大きなデザインを事前に行うことなく、通常、各プロジェクトに適用される基本的なデザインがあります。通常、これはアプリケーションの設計で尊重する基本的な層を定義します。他のほとんどの設計上の決定は、各開発者が行います。
当社の開発プロセスは、頻繁なピアレビューを伴う短い開発バーストに基づいています。各開発者のアーキテクチャ決定の品質は、ピアレビュー時に検証されます。これには、コードが製品アーキテクチャに従っていることの検証も含まれます。
プロジェクトのタイプと利用可能なツールに応じて、 macker などのツールを使用してレイヤーケーキの整合性を自動的に検証します。