第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 を残し、失敗や未確認と区別する
次章への接続
- 次章: 第6章