FOR LEARNERS学習中向け

P思考段2構成層設計

ADR(設計判断の記録)の書き方|「なぜそうしたか」を文脈・決定・結果の3点で残す

ADR(設計判断の記録)の書き方|「なぜそうしたか」を文脈・決定・結果の3点で残す

構成を決めて動かしたものの、数週間たつと「なぜこのサービスにしたのか」が自分でも思い出せない。人に聞かれて結論は答えられても、根拠がすぐに出てこない。そんな状態は、選んだ理由が頭の中にしか無いことから起きます。この記事は、理由を短い文書として残す ADR の最小の書き方を、学習中の構成にも使える形で整理します。

この記事の結論

  • ADR は、設計上の重要な選択を「文脈・決定・結果」で残す短い文書です。
  • 残すのは「どう作ったか」ではなく「なぜそうしたか」です。
  • 全部の判断を書くのではなく、後で変えにくい・影響が大きい判断だけを書きます。
  • 一度受け入れた ADR は書き換えず、変えるときは新しい ADR で置き換えます。
  • 選択肢と捨てた理由まで書くと、後から同じ議論を蒸し返されにくくなります。

ADR とは何か

ADR(Architectural Decision Record、アーキテクチャ決定記録)は、設計上の重要な判断を1件ずつ記録する短い文書です。AWS の規範ガイダンスでは、ADR を「アーキテクチャ上の重要な決定を、その背景や結果とともに記録するもの」として扱っています。1件ずつ積み上がるので、全体としては決定ログになります。

ここで大事なのは、構成図や手順書とは役割が違うことです。構成図は「いまどうなっているか」を示します。手順書は「どう作るか」を示します。ADR が示すのは「なぜそうなっているか」です。構成図だけを見ても、なぜ別の選択肢ではなくそれだったのかは読み取れません。

STEPS VS WHY手順と判断

残すのは手順ではなく、判断の理由

手順の記録

どう作ったか

  • 押した順番・設定値改定や環境で古くなる
  • 後で分かること同じものを再現できる

判断の記録(ADR)

なぜそうしたか

  • 背景・選択肢・引き受けたこと前提が変わっても読める
  • 後で分かること今も成り立つか見直せる

なぜ「理由」を残すのか

理由を残す価値は、主に3つの場面で出ます。

  • 担当が替わるとき。 後から入った人は、構成を見て「なぜこうしたのか」を聞ける相手がいないことがあります。理由が残っていれば、前提が今も成り立つかを自分で確かめられます。
  • 数か月後の自分に説明するとき。 学習中の構成でも同じです。作った直後は覚えていても、別の学習に移ると根拠から忘れていきます。
  • 同じ議論を蒸し返されたとき。 「なぜ EC2 ではないのか」と聞かれるたびに一から説明し直すのは負担です。検討した選択肢と、捨てた理由が書いてあれば、その文書を示せば済みます。

もうひとつ、書くこと自体の効果があります。理由を文章にしようとすると、自分の中で曖昧だった根拠が見つかります。「なんとなく」で選んでいたと気づけば、その時点で選び直せます。

最小の書き方|文脈・決定・結果の3点

AWS の規範ガイダンスは、ADR に最低限含める内容を文脈・決定・結果としています。この3点だけで、ADR は成立します。

部品 書くこと 後から分かること
文脈 判断が必要になった背景、守りたい条件、制約 その時点で何を前提にしていたか
決定 何を選んだか。1〜2文で言い切る 結局どうなっているか
結果 選んだことで起きること。良い面も、引き受ける不便も 何を引き受けたつもりだったか

これに、検討した選択肢と捨てた理由を足すと強くなります。選んだものだけが書いてあると、「他は考えなかったのか」という疑問が残るからです。選択肢の比べ方には、Well-Architected フレームワークの6本の柱(運用上の優秀性・セキュリティ・信頼性・パフォーマンス効率・コスト最適化・持続可能性)が観点として使えます。柱の使い方の詳細はトレードオフの考え方の記事に譲ります。

THREE PARTSADR の部品

ADR は文脈・決定・結果の3点に、選択肢を足して書く

  1. 文脈

    なぜ判断が要ったか

    背景・守りたい条件・制約

  2. 決定

    何を選んだか

    1〜2文で言い切る

  3. 結果

    何を引き受けるか

    良い面も不便も書く

  4. 選択肢

    他に何を考え、なぜ捨てたか

    蒸し返しを防ぐ

書き方のコツは、結果の欄に不便なことも書くことです。良い面だけの結果は宣伝文のようになり、後から読む人が前提を疑う手がかりになりません。「運用の手間が増える」「ある機能を諦める」のような引き受けたことを書いておくと、状況が変わったときに見直す合図になります。

CHECK 1ここまでの確認

ADR に最低限書くものとして挙げられている3点は、どれですか?

答えと解説

答え: 2. 文脈・決定・結果

ADR の最小形は、判断の背景(文脈)、選んだこと(決定)、選んだ結果として起きること(結果)の3点です。「最小の書き方」の章を読み直してください。

どの判断を ADR にするか

すべての判断を書く必要はありません。AWS の規範ガイダンスは、ADR の対象を構造、非機能要件、依存関係、インターフェース、構築技術に関わる重要な判断としています。言い換えると、後から変えにくく、影響が広い判断です。

向いている判断 向いていない判断
構成の骨格(サーバーを自分で持つか、マネージドに寄せるか) インスタンスの名前の付け方
非機能要件に関わる選択(止まっても困るか、どこまで速くするか) 画面の色や文言の微調整
外部サービスや他システムへの依存の持ち方 日々変わる細かな設定値
他の部分との接続の約束(インターフェース) 一時的な試し打ち
構築に使う技術やツールの選択 手順書に書けば足りる作業

線引きの目安は、「半年後に別の人がこれを変えようとしたとき、理由が分からないと困るか」です。困るなら ADR にします。困らないなら、手順書や設定ファイルのコメントで十分です。

ADR の状態と書き換えない決まり

ADR には状態があります。規範ガイダンスでは Proposed(提案中)、Accepted(受け入れ済み)、Rejected(却下)、Superseded(置き換え済み)が挙げられています。

LIFECYCLEADR の状態

受け入れた ADR は直さず、新しい ADR で置き換える

  1. Proposed

    提案中として書く

  2. レビュー

    議論して判断する

  3. Accepted / Rejected

    受け入れか却下

  4. 新しい ADR

    判断が変わったら書く

  5. Superseded

    古い方は置き換え済み

流れは次のとおりです。まず Proposed として書き、レビューで議論します。通れば Accepted、通らなければ Rejected になります。却下された案も、なぜ通らなかったかが残る点で価値があります。

最も大事な決まりは、受け入れた ADR は書き換えないことです。判断が変わるときは、新しい ADR を書き、古い ADR を Superseded にします。元の本文を新しい決定に書き換えてしまうと、「昔はなぜそうだったか」が消えます。履歴が残っていれば、判断が変わった理由も、前提のどこが変わったのかも追えます。

CHECK 2ここまでの確認

ADR にするのに向いているのは、どちらの判断ですか?

答えと解説

答え: 1. 後から変えにくく、影響が広い構成の選択

ADR は、重要で後から変えにくい設計判断を残すものです。細かな調整まで書くと続かず、肝心の判断が埋もれます。「どの判断を ADR にするか」の章を確認してください。

学習者が自分の構成に使う小さな例

例として、学習用に静的なサイトを公開する場面を考えます。サーバーを自分で持つ EC2 にするか、ストレージだけで配る S3 にするかで迷ったとします。ここでは書き方を示すための仮の例です。

# ADR-001 静的サイトの置き場に S3 を選ぶ

状態: Accepted

【文脈】
個人の学習用に HTML と画像だけのサイトを公開したい。
更新は不定期で、アクセスは少ない。サーバーの管理に時間を割きたくない。

【決定】
ファイルの置き場として S3 を使い、サーバーは持たない。

【結果】
- OS やパッチの管理が要らなくなる。
- 動的な処理(ログイン、フォームの処理など)は自分では持てない。必要になったら別の仕組みを足す。

【検討した選択肢】
- EC2 で Web サーバーを動かす: 動的な処理もできるが、管理する範囲が増えるため見送った。

見てほしいのは、手順が1行も無いことです。どのボタンを押したかではなく、何を守り(管理の手間を減らす)、何を諦め(動的な処理)、他に何を考えたかが残っています。後で動的な機能が欲しくなったとき、この ADR を Superseded にして新しい判断を書けばよいと分かります。

よくある失敗

  • 実装手順の書き写し。 手順は改定や環境の違いですぐ古くなります。ADR には書かず、公式ドキュメントや手順書に任せます。
  • 結論だけで理由が無い。 「S3 を使う」だけでは、構成図に書いてあることの繰り返しです。文脈と結果が無いと、後から前提を確かめられません。
  • 良い面しか書かない結果。 引き受けた不便が無いと、見直しの合図が分からなくなります。
  • 選択肢を書かない。 他を検討していないように読まれ、蒸し返しの原因になります。
  • 全部の判断を書こうとする。 続かなくなります。線引きの目安で絞ります。
  • 受け入れた後に本文を直す。 履歴が消えます。変えるときは新しい ADR で置き換えます。

CHECK 3ここまでの確認

受け入れ済みの ADR の判断が後で変わりました。どう扱いますか?

答えと解説

答え: 2. 新しい ADR を書き、古い ADR は置き換え済みにする

受け入れた ADR は書き換えず、変えるときは新しい ADR で置き換えます。「なぜ昔はそうだったか」という履歴が残るからです。「状態と書き換えない決まり」の章を読み直してください。

まとめ

ADR は、文脈・決定・結果の3点で「なぜそうしたか」を残す短い文書です。後で変えにくい重要な判断だけを書き、検討した選択肢と捨てた理由、引き受ける不便まで添えます。受け入れた ADR は書き換えず、変えるときは新しい ADR で置き換えます。次は、選択肢を比べる観点をトレードオフの考え方で身につけると、ADR の選択肢の欄が書きやすくなります。

参照ソース

SCOREこの記事の確認テスト

0/3問 正解

各章の「ここまでの確認」に答えると、ここに集まります。結果はこの端末のブラウザにだけ残り、サーバには送りません。

HAND IT OVER人に渡すなら

一言で説明するなら

家の設計図ではなく、建築中に交わした「なぜこの柱にしたか」の議事メモのようなものです。図面だけでは分からない理由が残るので、数年後に壁を抜くかどうかを、根拠を見て決められます。

FAQよくある質問

ADR は個人で学習しているだけでも要りますか?

短いもので足ります。数週間後の自分は、選んだ理由を思い出せない他人に近い存在です。後から自分に説明するための記録として役に立ちます。

ADR はどのくらいの長さにすればよいですか?

1つの判断につき1つの文書にし、要点が読める短さにします。文脈・決定・結果の3点が数行ずつあれば最小の形になります。

Well-Architected のレビューとは何が違いますか?

レビューは構成を問いで点検する営みで、ADR は選んだ理由の記録です。レビューで見つけた論点に対して、どう決めたかを ADR に残すとつながります。

この記事の次は何を読めばよいですか?

選択肢を比べる観点を身につけるために、トレードオフの考え方の記事に進んでください。比べた結果を、ADR の選択肢の欄に書けるようになります。

SAME TRACK同じ領域の記事

ADR を古くしない運用|レビューで受け入れ、変更で参照し、置き換えて決定ログを回す
ADR を古くしない運用|レビューで受け入れ、変更で参照し、置き換えて決定ログを回す 段2 構成運用
Well-Architected レビューの仕組み|質問に答えてリスクを出し、改善計画に落とすまでの流れ
Well-Architected レビューの仕組み|質問に答えてリスクを出し、改善計画に落とすまでの流れ 段2 構成仕組み
AWS Well-Architected フレームワークとは|6つの柱・設計原則・レンズを「問いの集まり」として使う
AWS Well-Architected フレームワークとは|6つの柱・設計原則・レンズを「問いの集まり」として使う 段2 構成とは