第2章:良い Issue テンプレ(背景 / 目的 / スコープ / 受け入れ条件)

この章で学ぶこと

  • 受け入れ条件を Given-When-Then などで書く
  • スコープ境界(やらないこと)で期待値を揃える
  • DoR(着手条件)に必要な根拠・依存・確認方法を揃える
  • 不具合・改善・作業でテンプレを使い分ける

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

  • 不具合・改善・作業の Issue テンプレを使って記述できる
  • 受け入れ条件と検証方法を対応づけて、レビュー可能な Issue にできる
  • 関連テンプレ: 不具合 / 改善 / 作業

本文

Issue の品質は、受け入れ条件の明確さで大きく左右される。受け入れ条件がない Issue は、完了が定義できず、終わらないタスクになりやすい。

受け入れ条件は「完了の判定基準」であり、「作業項目」ではない。実装メモや設計案は補足として書けるが、完了判定は受け入れ条件で行える状態にする。

受け入れ条件の例(Given-When-Then)

  • Given: 既存ユーザーでログイン済み
  • When: プロフィール更新を実行
  • Then: 成功メッセージが表示され、DB が更新される

テンプレを固定すると、レビュー観点も固定できる。

受け入れ条件と確認方法を対応づける

受け入れ条件は、PR 作成時に「どの確認で満たしたか」を説明できる粒度にする。条件だけがあり、確認方法がない Issue は、レビュー時に完了判定が属人化する。

受け入れ条件 確認方法 PR で示す証跡
必須項目が未入力なら保存されない 単体テスト / E2E / 手動確認 テスト名、スクリーンショット、ログ
エラー文言で不足項目が分かる UI 確認 / 文言レビュー 確認画面、レビューコメント
誤操作率が下がる メトリクス観測 観測期間、ダッシュボード、残タスク

数値目標を入れる場合は、観測期間と判定タイミングも書く。PR merge 時点で結果が出ない指標は、DoD ではなく follow-up Issue や完了後確認として分離する。

DoR に入れる最小項目

着手前に、次が揃っているか確認する。

  • 目的と対象読者/利用者が明確である
  • 受け入れ条件と確認方法が対応している
  • 根拠(一次情報、調査ログ、再現ログなど)と未確定点が分離されている
  • 依存関係、リスク、ロールバック要否が書かれている
  • 判断者、実行者、確認者が決まっている

根拠の分類や信頼度は、別冊の evidence-based-engineering-book の考え方に合わせると、Issue と PR の説明が一貫しやすい。

テンプレの使い分け(最小)

  • 不具合: 期待結果/実結果に加え、再現手順/環境/ログを揃える(第3章)
  • 改善: 背景/目的/スコープ/非スコープ/受け入れ条件を揃える
  • 作業: 手順/期待結果(受け入れ条件)/ロールバック/完了条件を揃える

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

悪い例

受け入れ条件: 良い感じになること
スコープ: いい感じに

良い例

背景: 入力不備による差戻しが多い
目的: 入力不備の差戻しを減らす
受け入れ条件:
- [ ] Given: 入力が不正
- [ ] When: 保存を押す
- [ ] Then: 保存されず、どの項目が不正か分かる
非スコープ: デザイン刷新、文言統一の全体対応

チェックリスト

  • 受け入れ条件が検証可能な形になっている
  • 受け入れ条件ごとの確認方法が書かれている
  • 非スコープが明記されている
  • 想定読者(利用者/運用者)が意識されている
  • 根拠、未確定点、依存、リスクが分離されている

まとめ

  • 受け入れ条件は検証可能な形(Given/When/Then など)で書き、完了判定を固定する
  • 受け入れ条件と確認方法を対応づけ、PR で示す証跡まで見通せる状態にする
  • 非スコープを明記し、期待値のズレを抑止する
  • 不具合・改善・作業でテンプレを使い分け、レビュー観点を固定する

次章への接続