ADR(アーキテクチャ決定記録) えーでぃーあーる
ADRアーキテクチャ決定記録意思決定ドキュメント技術選定ナレッジ管理
ADRって何のためにあるの?
ADR(アーキテクチャ決定記録)とは
ADR(Architecture Decision Record:アーキテクチャ決定記録) とは、ソフトウェアアーキテクチャに関する重要な決定を「何を・なぜ・どんな代替案を検討した上で決めたか」を文書化して蓄積する手法です。
2011年にMichael Nygardが提唱し、アジャイル開発コミュニティで広まりました。「なぜそうなっているか」という組織の文脈・歴史を失わないための「意思決定の台帳」です。
ADRのテンプレート
# ADR-001: PostgreSQLを使用する
## ステータス
承認済み(2026-04-13)
## コンテキスト
ユーザーデータと注文データを管理するDBが必要。
JOINの多い複雑なクエリが予想される。
## 決定
PostgreSQLを使用する。
## 根拠
- ACID保証が必要
- JSONBサポートで柔軟なスキーマも扱える
- チームにPostgreSQLの経験がある
- MariaDB・MySQLも検討したが、全文検索・JSONB・拡張性でPostgreSQLが優れる
## 結果
- 肯定的:信頼性・柔軟性が高い
- 否定的:小規模なら他のDBより重い場合も
ADRに記録すべき判断
- 使用するDB・フレームワーク・言語の選定
- マイクロサービス vs モノリスの選択
- 認証方式(JWT・OAuth等)
- API設計(REST vs GraphQL vs gRPC)
- クラウドプロバイダーの選定
歴史と背景
- 2011年:Michael NygardがADRの概念を提唱
- 2016年以降:Thoughtworksが「Technology Radar」でADRを推奨ツールとして紹介
- 現在:GitHub/GitLabに直接Markdownで管理するスタイルが主流
関連用語
- ソフトウェアアーキテクチャ — ADRが記録するアーキテクチャの決定
- レッスンズラーンド — プロジェクトの教訓を記録する類似の仕組み
- コードレビュー — ADRもコードレビュープロセスで承認される
- 技術的負債 — ADRにより技術的決定の背景を記録し負債を把握
- ドキュメント駆動開発 — ADRはドキュメント文化の一部