第4章:ユーザーストーリー

更新日:2025年12月7日

本章では、アジャイル開発における要求記述手法であるユーザーストーリーを解説する。ユーザーストーリーは、ユーザー視点で機能を簡潔に記述する手法である。良いストーリーの条件(INVEST原則)、受け入れ基準の書き方、大きなストーリーの分割手法について学ぶ。

1. ユーザーストーリーの概要

1.1 定義と目的

ユーザーストーリーは、ソフトウェアの機能をユーザーの視点から簡潔に記述したものである。エクストリーム・プログラミング(XP)から生まれ、現在では多くのアジャイルフレームワークで採用されている[1]。

ユーザーストーリーの主な目的をTable 1に示す。

Table 1. ユーザーストーリーの目的

目的 説明
会話の促進 詳細な仕様書ではなく、会話のきっかけとする
価値の明確化 なぜその機能が必要かを明示する
優先順位付け ビジネス価値に基づく判断を可能にする
見積もりの基礎 作業量の見積もり単位として使用する

ユーザーストーリーは詳細な仕様書ではない。必要な情報は会話を通じて補完することが前提となっている。

1.2 基本フォーマット

ユーザーストーリーの標準的なフォーマットを以下に示す。

ユーザーストーリーフォーマット
「〇〇として、△△したい。なぜなら□□だからだ。」
(As a [role], I want [feature], so that [benefit].)

このフォーマットには3つの要素が含まれる。

1.2.1 ロール(誰が):その機能を使用するユーザーの種類を明示する。

1.2.2 機能(何を):ユーザーが達成したい具体的な行動を記述する。

1.2.3 価値(なぜ):その機能がもたらすビジネス価値や利益を説明する。

Table 2にユーザーストーリーの例を示す。

Table 2. ユーザーストーリーの例

ストーリー
会員として、パスワードをリセットしたい。なぜならログインできなくなった時に困るからだ。
管理者として、売上レポートをCSVでエクスポートしたい。なぜなら表計算ソフトで分析したいからだ。
購入者として、注文履歴を確認したい。なぜなら過去の購入を参照したいからだ。

2. INVEST原則

良いユーザーストーリーの条件としてINVEST原則が知られている[2]。Fig. 1にINVEST原則の概要を示す。

各項目の詳細をTable 3に示す。

Table 3. INVEST原則の詳細

項目 意味 説明
I Independent(独立) 他のストーリーに依存せず、順序を入れ替え可能
N Negotiable(交渉可能) 詳細は会話を通じて調整可能
V Valuable(価値がある) ユーザーにとって明確な価値を提供する
E Estimable(見積もり可能) 作業量を見積もれる程度に理解できる
S Small(小さい) 1スプリント内で完了できるサイズ
T Testable(テスト可能) 完了を客観的に検証できる

INVEST原則は理想的な基準であり、全てのストーリーが完全に満たす必要はない。しかし、この原則に近づけることで、プロダクトバックログの品質が向上する。

3. 受け入れ基準

3.1 定義と重要性

受け入れ基準(Acceptance Criteria)は、ユーザーストーリーの完了条件を具体的に記述したものである。プロダクトオーナーがインクリメントを受け入れる際の判断基準となる。

受け入れ基準の役割をTable 4に示す。

Table 4. 受け入れ基準の役割

役割 説明
共通理解の形成 チーム全員が完了条件を同じ認識で共有する
スコープの明確化 含まれる機能と含まれない機能を区別する
テスト設計の基礎 テストケース作成の出発点となる
完了判定 客観的に完了を判断できる

3.2 記述形式

受け入れ基準の記述形式として、Given-When-Then(GWT)形式が広く使用されている。

Given-When-Then形式
Given(前提条件):〇〇という状態のとき
When(操作):△△を行うと
Then(期待結果):□□となる

Table 5に具体例を示す。

Table 5. 受け入れ基準の例(パスワードリセット)

Given When Then
登録済みメールアドレスを持つ会員が パスワードリセットを申請すると リセット用リンクがメールで届く
有効なリセットリンクをクリックして 新しいパスワードを入力すると パスワードが更新される
期限切れのリセットリンクをクリックすると エラーメッセージが表示される

4. ストーリー分割

4.1 分割の必要性

大きすぎるストーリー(エピック)は、1スプリント内で完了できず、見積もりも困難になる。INVEST原則のSmall(小さい)を満たすため、適切なサイズに分割する必要がある。

分割が必要なストーリーの特徴をTable 6に示す。

Table 6. 分割が必要なストーリーの特徴

特徴
見積もりが大きい 13ポイント以上(フィボナッチ)
スプリントに収まらない 2週間では完了できない
複数の価値を含む 「ユーザー管理機能」のような大きな括り
曖昧で見積もれない 詳細が不明瞭で判断できない

4.2 分割パターン

ストーリー分割には複数のパターンが存在する。Fig. 2に主な分割パターンを示す。

Table 7に各パターンの詳細を示す。

Table 7. ストーリー分割パターン

パターン 説明
ワークフロー分割 処理の流れに沿って分割 検索→表示→フィルタ→ソート
ビジネスルール分割 ルールごとに分割 通常購入→割引適用→クーポン適用
CRUD分割 操作種別で分割 作成→読取→更新→削除
バリエーション分割 条件やパターンで分割 クレジット→銀行振込→コンビニ
シンプル/複雑分割 難易度で分割 基本機能→エラー処理→エッジケース

分割後のストーリーもINVEST原則、特にValuable(価値がある)を満たす必要がある。技術的な層(UI、API、DB)での分割は、個々のストーリーが価値を提供できないため避ける。

5. 実践的なポイント

ユーザーストーリーを効果的に活用するためのポイントをTable 8に示す。

Table 8. ユーザーストーリー活用のポイント

ポイント 説明
ユーザーの言葉を使う 技術用語ではなく、ユーザーが理解できる言葉で記述する
解決策を記述しない 「どうやって」ではなく「何を」「なぜ」を記述する
会話を重視する ストーリーカードは詳細仕様書ではなく会話のきっかけ
受け入れ基準を明確に 曖昧な完了条件は後からトラブルの原因となる
適切なサイズを維持 大きすぎるストーリーは分割、小さすぎるものは統合

次章では、アジャイルにおける見積もりと計画立案の手法について解説する。

References

[1] M. Cohn, "User Stories Applied: For Agile Software Development," Addison-Wesley, 2004.

[2] B. Wake, "INVEST in Good Stories, and SMART Tasks," XP123, 2003.

免責事項
本コンテンツは2025年12月時点の情報に基づいて作成されている。ユーザーストーリーの記述方法や分割手法は、チームやプロジェクトの特性に応じて適切にカスタマイズされたい。

← 前章:カンバン基礎次章:見積もりと計画 →