アーキテクチャ決定レコードを活用して、ソフトウェア開発プロジェクトの技術的意思決定を効率化する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アーキテクチャ決定レコードを活用して、ソフトウェア開発プロジェクトの技術的意思決定を効率化する

Darius Kunce、Dominik Goby、Amazon Web Services (AWS)

2022 年 3 月 (ドキュメント履歴)

このガイドでは、ソフトウェアエンジニアリングプロジェクトのアーキテクチャ決定レコード (ADR) プロセスを紹介します。ADR はチームの連携を支援し、プロジェクトや製品の戦略的方向性を文書化し、繰り返し発生する時間のかかる意思決定作業を減らします。

ソフトウェアエンジニアリングチームは、プロジェクトや製品の開発中に、目標を達成するためにアーキテクチャ上の決定を下す必要があります。これらの決定は、コマンドクエリ責任分離 (CQRS) パターンを使用するなどの技術的なものである場合もあれば、GitFlow ワークフローを使用してソースコードを管理するなどのプロセス関連のものである場合もあります。このような決定を行うのは時間がかかり、難しいプロセスです。チームはこれらの決定について正当性を示し、文書化し、関連する利害関係者に伝える必要があります。

アーキテクチャ上の決定を行う際には、次の 3 つの大きなアンチパターンがよく起こります。

  • 間違った選択をすることを恐れて、何の決定も行なわれない。

  • 何の正当性もなく決定が行なわれ、なぜその決定が行なわれたのか理解されない。その結果、同じトピックが複数回議論されることになる。

  • 決定がアーキテクチャ上決定リポジトリに記録されないため、チームメンバーは決定が下されたことを忘れたり、知らなかったりする。

こうしたアンチパターンには、製品やプロジェクトの開発プロセスで取り組むことが特に重要です。

意思決定、背景、決定に至った考慮事項を ADR という形で把握することで、現在および将来の利害関係者は、行なわれた決定や各決定の背後にある思考プロセスに関する情報を収集できます。これにより、ソフトウェア開発時間が短縮され、将来のチームにより適切なドキュメントが提供されます。

ターゲットを絞ったビジネス成果

ADR は次の 3 つのビジネス成果を目標としています。

  • 現在のチームメンバーと将来のチームメンバーを連携させる。

  • プロジェクトや製品の戦略的方向性を設定する。

  • アーキテクチャの決定を適切に文書化して伝達するプロセスを定義することで、決定のアンチパターンを回避する。

ADR は決定の背景を把握して、将来の利害関係者に情報を提供します。ADR のコレクションは、経験の引き継ぎと参考資料になります。チームやプロジェクトメンバーは、フォローアッププロジェクトや製品機能の計画に ADR コレクションを使用します。ADR を参照できるようになれば、開発、レビュー、アーキテクチャの決定に必要な時間を短縮できます。ADR により、他のチームが他のプロジェクトチームや製品開発チームが検討した検討事項から学び、洞察を得られるようになります。