2023-12-19 ADR(アーキテクチャ意思決定記録)
ADRとは
Architectural Decision Records (ADRs)
An Architectural Decision (AD) is a justified software design choice that addresses a functional or non-functional requirement that is architecturally significant. An Architecturally Significant Requirement (ASR) is a requirement that has a measurable effect on a software system’s architecture and quality. An Architectural Decision Record (ADR) captures a single AD and its rationale; the collection of ADRs created and maintained in a project constitute its decision log. All these are within the topic of Architectural Knowledge Management (AKM), but ADR usage can be extended to design and other decisions (“any decision record”).
日本語訳は以下:
アーキテクチャ意思決定記録(ADRs)
アーキテクチャ上の意思決定 (AD)とは、アーキテクチャ上の重要な機能要件または非機能要件に対応する、正当化されたソフトウェア設計の選択です。アーキテクチャ上の重要な要件 (ASR) とは、ソフトウェアシステムのアーキテクチャと品質に計測可能な影響を与える要件です。アーキテクチャ上の意思決定記録 (ADR) とは、単一の AD とその根拠を記録したものです。プロジェクトで作成および維持される ADR の集合は、そのプロジェクトの意思決定ログを構成します。これらすべては、アーキテクチャ知識管理 (AKM) のトピックに含まれますが、ADR の使用は設計およびその他の意思決定 (“any decision record”) にまで拡張することができます。
ADR Sample
nokogiri の例:
Nokogiri v1.15.0でsystemのmalloc/freeをオプトインできるようになった。そのdecision recordがこれ。 » nokogiri/2023-04-libxml-memory-management.md at main · sparklemotion/nokogiri · GitHub https://t.co/vVgFycG600
— toshimaru (@toshimaru_e) May 18, 2023
〜その意思決定を刻め〜「アーキテクチャ・デシジョン・レコード(ADR)」を利用した設計の記録 - スタディサプリ Product Team Blog
CLIツールもあるよ
npryce/adr-tools: Command-line tools for working with Architecture Decision Records
immutable document という考え方
不変なドキュメントと可変なドキュメントに分類するのは真似したい。あと軽量なドキュメントとしてのDicision Recordを残すのも良さそう » 更新”しない”ドキュメント管理 「イミュータブルドキュメントモデル」の実運用 - Speaker Deck https://t.co/svLslUM4JF
— toshimaru (@toshimaru_e) December 16, 2023
参考情報
- Documenting Architecture Decisions
- ADRについて書かれている書籍: Design It!