ADR-XXX: [意思決定のタイトル]
TIP
このテンプレートをコピーして、新しいADRを作成してください。
ステータス
[採用済み / ペンディング / 却下 / 廃止]
- 採用済み: 意思決定が確定し、実装されている
- ペンディング: 検討中で、まだ決定していない
- 却下: 検討したが採用しないと決定
- 廃止: 過去に採用されたが、現在は使用していない
意思決定者
- 名前(役割)
- 名前(役割)
決定日
YYYY-MM-DD
背景(Context)
なぜこの決定が必要だったのか、どのような問題を解決するのかを記載します。
現状の課題
- 課題1
- 課題2
- 課題3
解決したいこと
- ゴール1
- ゴール2
要件(Requirements)
この意思決定で満たすべき要件を列挙します。
機能要件
- 要件1
- 要件2
非機能要件
- パフォーマンス要件
- スケーラビリティ要件
- セキュリティ要件
- 保守性要件
制約条件
- 技術的制約
- ビジネス的制約
- 時間的制約
検討した選択肢
最低2つ以上の選択肢を記載してください。
選択肢1: [技術名・方法名]
概要
選択肢の簡単な説明
メリット
- メリット1
- メリット2
- メリット3
デメリット
- デメリット1
- デメリット2
- デメリット3
実装コスト
- 初期実装: X時間
- 学習コスト: Y時間
- 保守コスト: 低/中/高
選択肢2: [技術名・方法名]
概要
選択肢の簡単な説明
メリット
- メリット1
- メリット2
- メリット3
デメリット
- デメリット1
- デメリット2
- デメリット3
実装コスト
- 初期実装: X時間
- 学習コスト: Y時間
- 保守コスト: 低/中/高
選択肢3: [技術名・方法名](オプション)
概要
選択肢の簡単な説明
メリット
- メリット1
- メリット2
- メリット3
デメリット
- デメリット1
- デメリット2
- デメリット3
実装コスト
- 初期実装: X時間
- 学習コスト: Y時間
- 保守コスト: 低/中/高
決定(Decision)
選択した技術・方法: [選択肢X]
選択理由
なぜその選択肢を選んだのかを、以下の観点で説明します。
要件との適合性
- 選択肢Xが要件1を最もよく満たす理由
- ...
技術的妥当性
- 選択肢Xが技術的に優れている理由
- ...
コスト対効果
- 選択肢Xのコスト対効果が高い理由
- ...
将来性
- 選択肢Xが長期的に有利な理由
- ...
実装方針
選択した技術をどのように実装するかの概要
- 実装ステップ1
- 実装ステップ2
- 実装ステップ3
受け入れたトレードオフ
この決定で受け入れたデメリットや制約を明記します。
トレードオフ1: [トレードオフの内容]
- 影響: どのような影響があるか
- 受け入れ理由: なぜこのトレードオフを受け入れたか
- 軽減策: トレードオフの影響を軽減する方法(あれば)
トレードオフ2: [トレードオフの内容]
- 影響: どのような影響があるか
- 受け入れ理由: なぜこのトレードオフを受け入れたか
- 軽減策: トレードオフの影響を軽減する方法(あれば)
結果(振り返り)
NOTE
このセクションは、実装後に記入してください。
実際に採用してみてどうだったかを記載します。
うまくいったこと(Pros)
- うまくいったこと1
- うまくいったこと2
うまくいかなかったこと(Cons)
- うまくいかなかったこと1
- うまくいかなかったこと2
学び
- 学び1
- 学び2
今後の改善点
- 改善点1
- 改善点2
参考リンク
- 公式ドキュメント:
URL - 関連するADR:
ADRへのリンク - 参考記事:
URL - 実装PR:
GitHubのPRへのリンク
関連ドキュメント
- 技術仕様:
/technical/xxx - 実装ガイド:
/guide/xxx