実装へ進めるIssueの書き方

入門 | 12分 で読める | 2026.07.11

公式ドキュメント

Issueは、作業の題名ではなく、背景・目的・範囲・完了条件を共有し、担当者が次の判断へ進める作業単位です。 「ログイン画面を改善する」だけでは、誰の何が困っていて、何をもって完了か判断できません。

曖昧な依頼を背景・目的・完了条件・対象外・参考情報・未決事項へ整理し、完了条件を証拠と照合できるIssueにする図

なぜIssueが必要か

口頭依頼や短いチャットは、決定の経緯と対象外が失われやすく、実装者と確認者が別の完成像を持つ原因になります。Issueに目的と観測可能な完了条件があれば、実装方法を選ぶ余地を残しながら、レビューとテストの基準を共有できます。

良いIssueは実装を細かく命令するものではなく、解く問題と境界を明確にします。

登場人物と対象

問題を報告する利用者・運用担当、優先順位を決めるプロダクト担当、実装者、デザイナー、レビュー・QA担当が関わります。起票者が全仕様を知っている必要はありません。分からない点は未決事項として残し、誰がいつ決めるかを示します。

作成から完了までの流れ

  1. 観測した問題と影響を事実で書く。
  2. このIssueで可能にしたい利用者行動を一文にする。
  3. 完了条件を画面・API・データなどで確認可能にする。
  4. 対象外と依存関係を明示する。
  5. 未決事項を解消し、実装可能な大きさへ分ける。
  6. PRとテストを関連付け、完了時に条件を照合する。

テンプレート

## 背景
どんな利用者の問題があるか

## 目的
この変更で可能にしたいこと

## 完了条件
- 確認できる動作
- 失敗時や空状態

## 対象外
今回変更しないもの

## 参考情報
画面、ログ、関連Issue、設計記録

## 未決事項
実装前に確認が必要なこと

不具合なら再現手順、期待結果、実際結果、環境、頻度を加えます。新機能なら利用者、利用場面、成功・空・失敗状態を加えます。セキュリティ問題は公開Issueへ詳細を書かず、リポジトリのセキュリティポリシーに従います。

Issueの主要パターン

種類中心になる情報完了の証拠
不具合再現手順と期待との差再現テストと修正確認
新機能利用者の目的受け入れ条件
技術改善現在のリスク・負債測定・テスト・削除結果
調査判断したい問い調査結果と次の決定
運用作業対象環境と安全条件実行記録と事後確認

調査Issueはコード変更を完了条件にせず、判断材料と次の選択を成果にできます。

具体例

## 背景
提出一覧が0件の時、読み込み中表示のままに見える。

## 目的
受講生が「提出がない状態」と通信中を区別できるようにする。

## 完了条件
- 読み込み中は進行中であることが伝わる
- 成功して0件なら空状態が表示される
- 取得失敗なら再試行できる

## 対象外
- 一覧の検索・並べ替え

## 確認
- 0件、1件、通信失敗を確認する

この例では技術名を固定せず、利用者が区別すべき状態を定義しています。

手段より目的を書く

実装方法が未決なら、最初から特定ライブラリを指定しません。制約と目的を書き、選択肢を検討します。

大きすぎる兆候

完了条件が10個以上、複数画面とDB移行を同時に含む、途中成果を確認できない場合はIssueを分けます。

分割後も親Issueやチェックリストで目的との関係を残します。単にフロントとバックへ分けると、利用者価値を確認できない半完成が増えることがあります。可能なら、薄くても一つの利用経路が完了する単位を選びます。

よくある誤解

Issueは最初から完全である必要はありません。情報が増えたら本文を更新し、重要な決定はコメントだけに埋めません。一方、実装開始後に完了条件を無言で変えるとレビュー基準が動くため、変更理由を共有します。「担当者を付けたから準備完了」でもなく、未決事項と依存関係が残っていないか確認します。

注意とベストプラクティス

  • 顧客情報、認証情報、非公開脆弱性を公開Issueへ載せない。
  • 「使いやすくする」を観測可能な状態へ分ける。
  • 解決策を指定する時は、法令・互換性など制約の根拠を書く。
  • 重複Issueは関連付け、片方を正本にする。
  • ラベルや優先度の意味はチーム内で統一する。

デバッグ・確認方法

第三者が本文だけを読み、「誰の問題か」「今回どこまでか」「どう確認するか」を答えられるか試します。リンク切れ、再現手順、環境情報、受け入れ条件を確認し、実装前に未決事項をゼロにするか、明示的に保留します。

ケーススタディ:プロフィール保存の失敗を扱う

「プロフィール画面を直す」という依頼を受けた時、すぐ通知部品の実装Issueにしてはいけません。調査すると、通信失敗時にも編集画面が閉じ、利用者は保存できたと思って離脱していました。ここで解く問題は通知の見た目ではなく、保存結果を区別できず再試行もできないことです。

目的は「受講生がプロフィールの保存結果を判別し、失敗時に入力を失わず再試行できる」と置けます。完了条件は、成功時に更新内容が再取得後も表示される、入力不備では該当項目と理由が分かる、通信失敗では編集内容を保持して再試行できる、権限がない場合は保存済みと表示しない、のように状態ごとに書きます。対象外にはプロフィール項目の追加と画面全体のデザイン変更を置きます。これで実装者は通知方式を選べますが、守るべき利用者行動は変わりません。

着手判断の手順

最初に、報告された現象が再現できるか、対象利用者と頻度が分かるかを確認します。次に、目的を一つの利用者行動で表し、成功、空、入力不備、通信失敗、権限なしのうち関係する状態を列挙します。その後、各完了条件にテストや操作確認を割り当て、API契約、デザイン、データ移行などの依存を洗い出します。最後に、未決事項の答えが実装を大きく変えるなら着手を止め、調査Issueへ分けます。変えないなら、担当者と決定期限を明記して並行できます。

着手可能とは、すべてが決定済みという意味ではなく、未決事項が作業境界を壊すかどうかを判断できる状態です。

失敗条件と観測方法

Issueは、実装者ごとに異なる完成像になる、完了条件を実行しても合否が決まらない、対象外の変更なしでは完了できない、必要な権限やデータ条件が後から発覚する、という時に失敗しています。「エラーを適切に表示する」「レスポンシブにする」「いい感じに高速化する」は、観測対象や境界値がないため、そのままでは完了条件になりません。

観測には、状態別のテスト結果、再現動画、画面キャプチャ、API応答、計測値などを使います。ただし画像一枚で再試行やデータ保持まで証明したことにはしません。各完了条件の末尾に「どの環境で、誰が、何を操作し、何が見えれば合格か」を補うと、レビュー時の解釈差を見つけやすくなります。完了時には条件へチェックを付けるだけでなく、対応するテスト名やPR内の確認記録へ結びます。

良い例と悪い例

悪い例は「保存ボタンを押したらトーストを出す」です。手段だけを指定し、失敗時の入力保持や権限エラーを見落としています。良い例は「通信失敗時、編集内容を保持したまま失敗を識別でき、同じ入力で再試行できる」です。さらに「成功通知の色はデザイナー確認待ち。通知方式にかかわらず保存結果を読み上げ可能にする」のように、未決の見た目と確定した振る舞いを分けると、並行作業の範囲が明確になります。

実践演習:曖昧な依頼を分解する

「プロフィール画面を改善する」を題材に、観測事実を一つ書きます。「保存失敗時も成功時と同じ画面に戻り、結果を区別できない」は確認可能ですが、「使いにくい」はそのままでは判定できません。成功、入力不備、通信失敗、権限なしのうち今回扱う状態を選び、対象外も書きます。

別の人にIssueだけを渡し、実装案を二つ考えてもらいます。どちらも目的と完了条件を満たせるなら、手段を過剰に固定していません。完成像が大きく異なるなら、利用者、状態、データ境界のどれが曖昧かを補います。

着手可能の判定では、依存Issue、デザイン、API契約、権限、移行の未決事項を確認します。未決でも並行調査できる場合は担当と決定期限を付けます。完了後は各条件へテスト、画像、操作結果などの証拠を対応させます。

まとめ

実装へ進めるIssueは、背景、目的、確認可能な完了条件、対象外、未決事項を一つの作業境界として共有します。 手段を先に固定せず、必要な制約だけを根拠付きで残します。完了時はPRの存在ではなく、受け入れ条件を証拠と照合します。

参考リソース

次に読む記事

← 一覧に戻る
PR
PR
PR
PR