【えーでぃーあーる】

ADR(アーキテクチャ決定記録) とは?

最終更新:
💡 設計を選んだ「なぜ」を残すメモ

ソフトウェアの設計で重要な決定をしたときに、背景・理由・結果を残す短い文書。後から参加した人も「なぜこの設計なのか」をたどれます。

📌 このページのポイント
ADR:設計を選んだ「なぜ」を残す例:保存先にDB Aを採用状態承認済み背景何が必要で、何が制約か決定選んだ方法と、その理由結果利点・欠点・影響を残す古い決定も、新しい記録とつなげて残す
短い設計判断の記録の例。構成はチームで決め、決定を変えるときも以前の理由をたどれるようにします。
ひよこ ひよこ
設計図があれば、ADRはいらない?
ペンギン先生 ペンギン先生
設計図は今の構造を伝えるけれど、なぜその構造を選んだかまでは分からないことがある。ADRは、当時の制約や検討した選択肢、決定の理由を残すメモなんだ。将来のメンバーが判断を見直すときにも役立つよ。
ひよこ ひよこ
何を書けばいいの?
ペンギン先生 ペンギン先生
一つの型として、タイトル・背景・決定・状態・結果があるよ。Nygardの例では、結果には良いことだけでなく、悪いことや中立の影響も含める。AWSのガイドは少なくとも背景・決定・結果を挙げている。五項目が唯一の必須形式ではなく、チームで読みやすい型を決めよう。
ひよこ ひよこ
どんな決定でも残すの?
ペンギン先生 ペンギン先生
例えばデータベースの選択や、APIの方針など、設計に大きく影響する判断を対象にしよう。この例なら「なぜ選んだか」「どんな制約があったか」が大事だね。細かい実装手順を全部書く文書というより、一つの重要な決定を後から理解するための記録なんだ。
ひよこ ひよこ
決定を変えるときは、古いメモを消す?
ペンギン先生 ペンギン先生
以前の理由も残そう。Nygardの記事やAWSの運用例では、新しいADRを作り、古いADRに置き換えられたことと参照先を示す。提案中と承認済みなどの状態も区別すると、今有効な決定を追いやすい。短くても、理由と結果が分かる文章にするのが大切だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ADR」って出てきたら「重要な設計を選んだ理由を残す記録」と思えばだいたいOK!
📖 おまけ:英語の意味
「Architecture Decision Record」 = アーキテクチャの決定記録
💬 Decisionは決定、Recordは記録。Michael Nygardによる2011年の記事でも、重要な設計判断を短い文書で残す方法が説明されています。

参考資料

← 用語集にもどる