第5章:Definition of Ready / Done(入口と出口の統一)

この章で学ぶこと

  • 入口条件(DoR)で「着手できる状態」を統一する
  • 出口条件(DoD)で「終わった状態」を統一する
  • DoD を常時必須ゲートと、PR / CI / 公開物などが存在する場合の条件付きゲートに分ける
  • 曖昧タスク・終わらないタスクを抑止する

成果物(書けるようになるもの)

  • DoR / DoD をテンプレで運用できる(付録: DoR / DoD)
  • Issue の入口/出口を宣言できる

本文

DoR がないと、調査不足のまま着手し、手戻りが増える。DoD がないと、完了の判定が曖昧になり、品質がばらつく。

最小の DoR / DoD

  • DoR: 背景/目的/受け入れ条件/依存/リスク
  • DoD(常時必須): 完了判断/受け入れ条件との対応/確認結果と証跡/残課題と次アクション

常時必須ゲートは作業種別によらず確認する。「対応しない」と判断して閉じる場合も、完了判断として理由と再確認条件を残す。PR / CI / デプロイ / 公開物 / 運用変更が存在する場合は、対応する条件付きゲートを追加する。

PR 前後の DoD ゲート

Issue の DoD は「実装が終わった」だけで閉じない。一方、存在しない CI や公開物まで必須にはしない。次のゲートは適用条件を満たす場合だけ DoD へ追加する。

ゲート 適用条件 確認すること 証跡または N/A 記録
PR 説明 PR を作成した 受け入れ条件に対応する変更、確認方法、影響、リスクが揃っている PR URL / body。PR がない場合は作業種別と Owner を添えて N/A
レビュー対応・未解決 thread 0 レビューを伴う PR がある review 本文、inline comment、suggestion を全件確認し、未解決 thread が 0 である 修正、返信、対応不要理由、thread 状態
CI green repository に対象変更を検証する CI が構成されている 対象コミットの必須 check が成功している CI URL、check 名、対象 commit。CI が存在しない場合は確認方法と Owner を添えて N/A
merge 後の main checks main 向け checks が構成されている merge 前は PENDING とし、merge 後に merge commit を対象とする checks が成功している merge 前は PENDING の理由、merge 後は main checks の URL と merge commit。checks が存在しない場合だけ N/A
デプロイ/公開反映 変更対象にデプロイ先または公開物がある 対象版が反映され、期待する marker や挙動を確認した deployment URL、公開 URL、確認した版/文言。公開物がなければ理由を添えて N/A
ロールバック 変更に切り戻し可能な利用者/運用影響がある 手順、実行条件、判断者が定義されている Runbook、revert 条件。記録だけの作業なら理由を添えて N/A
ナレッジ化 運用や再利用手順へ影響する Runbook / FAQ / ADR など必要な転記が完了した 転記先、Owner、再確認条件。影響がなければ N/A 理由

条件付きゲートの状態は PASS / FAIL / PENDING / N/A で記録する。適用するゲートが成功すれば PASS、失敗中なら FAIL、確認未完了なら PENDING、条件非該当の場合だけ N/A とする。完了できるのは適用するゲートがすべて PASS で、FAIL / PENDING が 0 の場合だけである。

N/A は「未確認」や「失敗」の代替ではない。ゲート名、非該当理由、判断根拠、Owner を完了コメントへ残す。構成済み CI の失敗、main checks の失敗、公開対象の未反映は N/A にして閉じない。

レビュー指摘に対応しない場合も、無視ではなく「対応不要理由」を返信する。たとえば、指摘がスコープ外、既存仕様と整合しない、別 Issue に分離すべき場合は、根拠と follow-up 先を明記する。

注意点(運用のコツ)

  • DoR / DoD は「チームの合意」であり、形骸化させない(満たせない場合は不足情報と期限を明記する)
  • DoR を厳格にしすぎると停滞するため、種別(不具合/改善/作業)に応じて最小条件を調整する
  • DoD は実装だけで閉じず、必要に応じてテスト/運用手順/監視/FAQ などまで含める

具体例(悪い例→良い例)

悪い例

DoD: 終わったら終わり
DoR: とりあえず着手

良い例

DoR: 受け入れ条件と検証方法が合意済み
DoD(常時必須): 受け入れ条件 PASS、確認結果と残課題を完了コメントに記録
条件付き: PR / レビュー=PASS、CI=PASS(対象 commit の URL)、公開反映=N/A(private ADR で公開物なし、判断 Owner=PM)

チェックリスト

  • DoR が満たされてから着手している
  • DoD が満たされてから完了にしている
  • 常時必須ゲートの完了判断、確認結果、残課題を記録した
  • PR / CI / main checks / 公開反映などの適用条件を判定した
  • 適用するゲートは PASS の証跡を、非該当ゲートは N/A 理由・根拠・Owner を記録した
  • FAIL / PENDING の条件付きゲートが 0 である
  • 構成済みゲートの失敗や未反映を N/A にしていない

まとめ

  • DoR / DoD で「着手できる状態」と「終わった状態」を統一し、曖昧タスクを減らす
  • 常時必須ゲートは全作業で確認し、レビュー、CI、main checks、公開反映、ロールバック、ナレッジ化は適用条件を満たす場合に確認する
  • 適用するゲートは PASS、失敗中は FAIL、確認未完了は PENDING、条件非該当だけを N/A として記録する
  • 非該当ゲートは N/A 理由・根拠・Owner を残し、失敗や未確認と区別する

次章への接続