読み方 : エーディーアール

ADR【Architecture Decision Record】

概要

ADRとは、ソフトウェア開発における設計上の意思決定とその理由を記録する文書。意思決定の内容と背景や理由を記録し、チームが下した設計上の判断を後から追跡・参照できるようにする。
ADRのイメージ画像

1件のADRは通常1つの決定事項に対応する短い文書として作成される。一般的な構成要素としては、タイトル、状態(提案中・採用・廃止など)、文脈(その決定が必要になった背景)、決定内容、結果(採用によって生じるトレードオフや影響)が挙げられる。この形式はマイケル・ナイガード(Michael T. Nygard)氏が2011年に提唱した雛形が広く参照されており、これをベースに独自の項目を追加して使うことも多い。

現代的な開発プロジェクトでは、ADRをMarkdownファイルとして作成し、コードと同じリポジトリ内に保存するスタイルが一般的となっている。例えば、「docs/adr/」のようなディレクトリを設け、「0001-use-postgresql.md」のように連番とタイトルをファイル名にすることが多い。これにより、コードの変更履歴とアーキテクチャの決定履歴をGitで一元管理できる。

過去に行われた意思決定が何らかの事情で変更される場合もあるが、既存のADRは原則として書き換えず、判断を覆す場合は旧ADRを「廃止」状態に変更したうえで新しいADRを追加する。この追記型の運用によって、過去の判断がなぜ下されたかという経緯が時系列で保持される。

新規参加メンバーがプロジェクトの設計方針を把握する際や、過去に同様の検討を行ったかどうかを確認する際にADRが参照される。ナイガード氏の雛形の他にも「MAUD」や「Y-Statements」といった別の形式も存在し、チームの規模や文化に応じて使い分けられている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。