ソフトウェア開発の歴史には、「正しかったのに普及しなかった」手法がいくつかあります。ADR(Architecture Decision Record)もその一つかもしれません。
アジャイルとともに生まれた記録手法
ADRは、2011年にMichael Nygardが発表したブログ記事で広く知られるようになった手法です。高速にスプリントを繰り返すアジャイル開発において、設計判断の「理由」がチーム内で共有されず失われていく——その課題に対する解として提案されました。
記録の方法はシンプルです。プロジェクトのdocs/adrディレクトリに、ADR-001.mdのようにMarkdownファイルを通し番号で追加していく。各ファイルには「背景」「決定事項」「結果」の3要素を記述します。軽量で、バージョン管理にも乗る。Thoughtworksが2018年のTechnology Radarで「Adopt」に分類したことで注目度が上がりましたが、実際の現場で定着したかというと、そうはなりませんでした。
理由はシンプルで、人間がドキュメントを更新し続けるのが難しかったからです。スプリントのスピードに人手の記録作業が追いつかない。記述を忘れ、内容が陳腐化し、やがて誰も参照しなくなる。ADRは「理想的だが運用が重い」手法として、多くのプロジェクトで静かに棚上げされました。
AIコーディングの現状との類似
ところが、今のAIコーディングが直面している課題を見ると、ADRが解こうとした問題と驚くほど似ていることに気づきます。
AIエージェントはセッションをまたぐと文脈を失います。前回のセッションで合意した設計方針を知らないまま、異なるアプローチでコードを書き始める。人間のチームで起きていた「判断の理由が共有されない」問題が、AIとの協働でも再現されているのです。
そして興味深いのは、ADRが廃れた原因——「人間がドキュメントを書き続けられない」——が、AIの登場で解消されうるという点です。AIエージェント自身が設計判断を記録・更新するようにすれば、人手のボトルネックは消えます。
ただし、Markdownのままでは足りない
AIがADRの作成・更新を担うことで、「人間が書き続けられない」問題は解決に向かいます。ただし、従来のMarkdownファイル方式には別の課題が残ります。
docs/adr配下に数十のファイルが蓄積されていくと、今必要なADRを探すのが難しくなります。全ファイルをコンテキストに読み込めばトークン消費が膨らみ、LLMの推論精度にも影響します。「人間には早すぎた」ADRを、AIネイティブな形で再設計する余地がある——私たちはそう考えています。
次の記事では、sqlewがこの課題にどうアプローチしているかをご紹介します。
参考文献
- "Documenting Architecture Decisions" — Michael Nygard (2011) — https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
- "Using architectural decision records to streamline technical decision-making for a software development project" — AWS Prescriptive Guidance (2022) — https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/welcome.html






