アジャイル開発では、要件定義として「ユーザーストーリー」という手法が使われます。ユーザーストーリーを作成する目的やメリットを理解し、より効率的にアジャイル開発を進めましょう。本記事では、ユーザーストーリーの概要や目的、メリットを解説します。具体的な作成手順も紹介するため、ぜひ参考にしてください。
アジャイル開発におけるユーザーストーリーとは
ユーザーストーリーとは、アジャイル開発においてプロダクトを利用するユーザーが「誰」で、「なぜ」「何を」求めているのかを分析して、ユーザーのニーズを明確にする手法です。ここでは、ユーザーストーリーを作成する目的や、似た用語である「ユースケース」との違いを解説します。
ユーザーストーリーを作成する目的
ユーザーストーリーを作成する目的は、ユーザーの求めているものとプロダクトの機能や価値を合致させることです。どれほど機能の充実したプロダクトでも、ユーザーのニーズとかけ離れていると、独りよがりなものになってしまいます。
ユーザーの属性やニーズ、プロダクトを求める理由を明確にすることで、よりニーズに即した使いやすいプロダクトを制作できるでしょう。
ユーザーストーリーとユースケースの違い
「ユースケース」も、システム開発の要件定義によく使われる手法です。ユースケースでは、ユーザーが機能をどのように利用するかを明確化します。
ユースケースはプロダクト側の機能に焦点を当てた要件定義ですが、ユーザーストーリーでは、ユーザーが達成したい目的をユーザー目線で整理するという違いがあります。
アジャイル開発におけるユーザーストーリーの重要性
ユーザーストーリーは、アジャイル開発における要件定義の核となる手法です。アジャイル開発では、ユーザーやクライアントの要望を取り入れて、開発途中で仕様や方針を変更することを前提としています。ユーザーストーリーという軸があれば、要件定義を繰り返し変更しても、ユーザーニーズから大きくぶれることなく開発を進められるでしょう。
アジャイル開発でユーザーストーリーを作成するメリット
ここでは、ユーザーストーリー作成のメリットを3つに分けて紹介します。
1.開発の方向性が固まる
ユーザーストーリーを作成すると、開発の方向性が固まります。開発が長期間になると、当初の目的があいまいになってしまうことも珍しくありません。開発側の都合でユーザーニーズから遠ざかってしまうこともあるでしょう。
ユーザーストーリーが作成されていれば、ユーザー目線に立ち返ることができ、要件の変更が多いアジャイル開発でも方向性がブレにくくなります。
2.クライアントを巻き込みやすくなる
アジャイル開発成功のためには、クライアントの協力が不可欠です。しかしアジャイル開発に慣れていないクライアントの場合、うまく巻き込めないこともあるでしょう。
ユーザーニーズはクライアントが詳しく把握している場合も多いため、ユーザーストーリー作成にあたって率直な意見を出してもらうことで、自然に巻き込むことができます。クライアントの参加を促す雰囲気を作る際にも、ユーザーストーリーは効果的です。
3.チーム全体で共通の理解ができる
プロダクトオーナー(PO)、プロジェクトマネージャー(PM)、エンジニアなど、チームメンバーの間でプロダクトについての認識がずれていると、目的に沿った開発が行えません。
ユーザーストーリーが作成されていれば、プロダクトや機能の目的を全員で共有できるため、認識のずれが起こりにくくなります。
ユーザーストーリーのフォーマット
ユーザーストーリーは、「【誰】が、【なぜ】、【何】をする」というフォーマットに沿って、短い文章で簡潔に表現しましょう。
たとえば、ECサイトの検索機能であれば、「【購買者】が、【目的の商品を早く見つけるため】、【ジャンルによる商品の絞り込み】をする」となります。
ユーザーストーリーのチェックリスト「INVEST」
「INVEST」とは、ユーザーストーリーの品質をチェックする項目の頭文字を取ったガイドラインです。具体的な項目は以下のとおりです。
・I:Independent(それぞれのユーザーストーリーが重複なく独立しているか)
・N:Negotiable(機能についてステークホルダーと交渉が可能か)
・V:Valuable(ユーザーにとって価値のあるストーリーになっているか)
・E:Estimable(開発工数が見積り可能か)
・S:Small(アジャイル開発の1サイクルに収まる規模であるか)
・T:Testable(ユーザーストーリーの達成をテスト可能か)
ユーザーストーリーの作成時には上記の観点を意識しましょう。
ユーザーストーリー作成に重要な「3C」
ユーザーストーリーの作成は、3つのCに沿って進めましょう。具体的な項目は以下のとおりです。
・Card(カード):ユーザーストーリー作成に必要な要素(ニーズ、見積もり、優先度など)を、カードに書き出す
・Conversation(会話):開発者に対し、会話を通して詳しくユーザーストーリーを伝える
・Confirmation(確認):受入テストなどの工程で成果物を確認する
アジャイル開発でユーザーストーリーを作成する手順
実際にユーザーストーリーを作成する際は、以下の手順で進めましょう。
1.ペルソナを策定する
まずはプロダクトを利用する人物像についてペルソナを設定しましょう。年齢・職業・性別・年収・スキル・家族構成など、できるだけ具体的に設定します。
2.ユーザーの行動をカードに書き出す
次に、ユーザーの行動を1つずつカードに書き出しましょう。「商品を探す」など漠然とした大きい行動ではなく、「商品名を検索ボックスに入力して検索する」など、1つの行動を具体的に書き出すことが重要です。
3.ユーザーストーリーマッピングを行う
最後に、カードに書き出した行動を時間軸と優先度で整理して並べ替え、ユーザーストーリーマッピングを行いましょう。時間軸はプロダクトを使用する時間だけでなく、その前後の行動も含めてシミュレーションすることが大切です。
ユーザーストーリーを作成すべき場面
アジャイル開発では、多くの場合ユーザーストーリー作成が必要になりますが、特に以下のような場面では有効です。
作業の優先順位がわからない場合
バックログが溜まってくると、どの作業から手をつけるべきか不明瞭になってきます。とりあえず目についたものや工数の少ないものから着手していると、重要度の高いタスクが後回しになってしまい、重大な遅延が生じてしまいかねません。
より重要なタスクを優先して作業するための判断軸として、ユーザーストーリーが有効です。タスクの優先順位がわからなくなってしまった場合は、一度ユーザーストーリーに立ち返ってみましょう。
チームのメンバー間で認識がずれている場合
開発を進めるうちに、「メンバーの認識がずれている気がする」と感じたことはないでしょうか。そのような場合もユーザーストーリーが有効です。
現場のエンジニア視点では、開発のサイクルを回すうちに、プロダクト全体の目的や方向性があいまいになってしまいがちです。認識ずれが生じている場合は、先述したPOやPMが中心となり、ユーザーストーリーを活用してメンバーの理解を助ける必要があります。
ユーザーストーリー活用で失敗しないためのポイント
ユーザーストーリーが正しく作成されていないと、開発全体に影響が及びます。ここではユーザーストーリー作成で失敗しないためのポイントを解説します。
1.ユーザー視点から書く
エンドユーザーのニーズに合致するよう、ペルソナを踏まえてユーザーストーリーを作成しましょう。受け身(「〜される」など)ではなく、能動的な表現(「〜する」など)にすることもポイントです。
2.あいまいな表現や複雑な表現は避ける
ユーザーストーリーは「短く簡潔に」が鉄則です。技術的な表現や複雑な表現、あいまいな表現は避けましょう。誰が見ても齟齬が起きないよう、理解しやすい文章になっていることも重要です。
3.INVESTや3Cなどのフォーマットを活用しよう
高品質なユーザーストーリーができているかチェックするためには、先述したINVESTや3Cなどのフォーマットを活用するのも有効です。特にユーザーストーリーの作成経験が浅い場合、フォーマットがあれば作成の助けとなるでしょう。
4.ツールを活用する
ユーザーストーリーの数が多くなってくると、まとめたり整理したりするだけでもかなりの工数がかかります。頻繁にユーザーストーリーを作るなら、ツールを活用して効率よく作業を進めましょう。
まとめ
アジャイル開発において、ユーザーストーリーは開発の軸となる手法です。
アジャイル開発では、開発途中でクライアントやユーザーのフィードバックを取り入れて、方針を変更することが前提となっています。しかし、ユーザーストーリーがあれば、仕様変更が繰り返されても、ユーザーニーズから大きく外れることなく開発を進められます。
株式会社Sun Asteriskは、スタートアップから大企業まで、さまざまな規模の企業に適した開発チームを構築し、開発を支援します。DXコンサル、設計から本格的な開発まで一気通貫でサポートできるケイパビリティの広さと、柔軟で豊富な開発スタッフのリソースが特徴です。開発の支援を検討中なら、ぜひご相談ください。
貴社の状況にあわせて最適なチームをご提案します。アジャイル開発のご相談やお見積りのご依頼は、お気軽にお問い合わせください。
Sun*アジャイル開発に関するソリューションやこれまでの開発実績をまとめた資料のダウンロードはこちらから。