ADR — アーキテクチャ意思決定記録
なぜその技術を選んだのか? 設計判断を記録・共有・進化させる方法
プロローグ — なぜそうなっているのか誰も知らない
新任テックリードのシンジが直面した「設計判断の断絶」問題。誰も知らない理由に苦しむ物語
ADR とは何か — 意思決定を記録する文化
ADRの構造とメリットを理解する。なぜコードだけでは不十分で、判断理由を残すことがチームを救うのか
ADR の書き方 — テンプレートと実例
Status, Context, Decision, Consequencesの各セクションを実例で学ぶ。良いADRと悪いADRの違いとは
実例: データベース選定 — PostgreSQL vs MySQL
ADRで記録する技術選定の実例。シンジのチームが新機能追加でデータベースのトレードオフを議論する過程を追う
実例: 認証方式の選定 — JWT vs Session
セキュリティとのトレードオフをADRで記録する。JWTとセッションベース認証の比較から学ぶ設計判断の記録
実例: インフラ構成の選定 — ECS vs EKS
運用コストと学習コストのトレードオフをADRで記録する。AWSコンテナオーケストレーションの選択とその記録
ADR の運用 — Git での ADR 管理
adr-toolsを使ったADR管理、PR連携、インデックス作成、検索性の確保。ADRを継続的に運用するための仕組み作り
ADR とチーム — 意思決定プロセスの民主化
ADRをチームに根付かせる方法。RFC、Design Docとの使い分け、意思決定プロセスの民主化と心理的安全性への影響
エピローグ — 意思決定の積み重ねがアーキテクチャになる
ADR文化が定着したシンジのチームの1年後。設計判断の記録が組織の知識資産になるとはどういうことか