開発するプロダクトのユーザーニーズを整理するために有効な手法であるユーザーストーリーは、アジャイル開発において要求の整理に活用できます。
ユーザーストーリーは具体的にはどのように作成していくべきものなのでしょうか。
この記事では、アジャイル開発のプロフェッショナルとして多くの企業を支援してきた当社、スパイスファクトリーが、アジャイル開発におけるユーザーストーリーの書き方や具体的な利用イメージをご紹介します。
Contents
ユーザーストーリーとは
ユーザーストーリーとは、システムを開発する際にユーザーが求めている機能を整理するためのフォーマットです。
具体的には「誰が」「なぜ」「何をしたいか」という形でユーザーの要求を整理していきます。
ユーザーストーリーはアジャイル開発手法の一つであるXP(エクストリームプログラミング)のプラクティスとして提唱されたアプローチです。
ユーザーストーリーはアジャイル開発の文脈で生み出されたものであり、当然ながらアジャイル開発と相性が良いものですが、アジャイル開発のみならずシステム開発全般において活用できる可能性がある手法です。
ユーザーストーリーはユースケースとは異なる概念
「誰が」「なぜ」「何をしたいか」をまとめるという考え方を聞いたとき、システム開発の経験がある方であれば「ユースケースと何が違うの?」という疑問を持つのではないでしょうか。
ユースケースとは、ユーザーがシステムを利用して実現できることを整理する方法であり、ソフトウェア開発において一般的に用いられるものです。
実際に、ユーザーストーリーという概念が生み出された時点では “with user stories, which are like use cases ”(ユースケースのようにユーザーストーリーを用いる)という表現がみられるなど、両者は近しいものという認識でした。
一方で、その後アジャイル開発が洗練されていく中で、ユーザーストーリーはユースケースとは異なる概念であると定義されるようになります。
両者の違いを端的に言うと、要求を整理する際の視点の違いです。
ユーザーのニーズを満たすために「システムが実行しなければならないこと」を整理するシステム視点のユースケースに対して、ユーザーの視点から「ユーザーが達成したい目標」を整理するユーザー目線のユーザーストーリーという違いがあります。
よって、ユーザーストーリーにおいては「どの画面やデータを利用するか」といった技術的な要素はあまり含まれず、代わりに「なぜユーザーはそのような行動をしたいか」や「そうすることでユーザーはどのようなメリットがあるのか」といったユーザー側の意識を重視して要求を整理します。
ユーザーストーリーを作成する理由
ユーザーストーリーは、ユーザーの要求を可視化してチームで共有するために作成します。
ユーザーのニーズを明確化することで、チームメンバーによる認識ずれを防ぐことにつながります。
また、複数の要求のうち、どれを優先して開発するかといった優先順位付けにも利用することができます。
特に、ユースケースではなくユーザーストーリーという形で要求を整理することにより、システムに詳しい方でなくても理解しやすい表現になるというメリットもあります。
これにより、ビジネスサイド・ITサイドに関わらず、共通認識を持ちやすくなります。
ユーザーストーリーの書き方
以下では、具体的なユーザーストーリーの書き方をご紹介します。
ユーザーストーリーの基本フォーマット
上述しましたが、ユーザーストーリーの基本フォーマットは「誰が」「なぜ」「何をしたいか」という形でユーザーの要求を整理していくものです。
例えば、ECサイトにおけるユーザーストーリーであれば以下のような内容が挙げられるでしょう。
- ユーザーは自分が求めている分野の商品を探しやすくするため、商品カテゴリーにより商品を絞り込む
- 調達担当は在庫切れを防ぐために、商品ごとに将来的な在庫切れを予想した結果を確認する
- マーケターはロイヤルカスタマーを発見しやすいように、ユーザーごとの購買頻度や購買額を確認する
ユーザーストーリーは、シンプルかつ小さい範囲で整理することが良いとされています。
これは、開発のしやすさにもつながるポイントです。
ユーザーストーリーの3C
ユーザーストーリーは「Card」「Conversation」「Confirmation」の3つの「C」でまとめていきます。それぞれのCの意味は以下のとおりです。
- Card(カード):ユーザーの要求をカードや付箋に簡潔にまとめていく。カードにはすべての情報が含まれているわけではなく、ストーリーを思い出すために十分な情報が書かれる
- Conversation(会話):開発者に対しては、会話を通じて詳細にストーリーを伝えていく
- Confirmation(確認):開発された機能を確認する。一般的に受入テストと呼ばれる工程に粗糖する
※参考:Essential XP: Card, Conversation, Confirmation
INVESTチェックリスト
ユーザーストーリーの品質を評価する際に有効なのが「INVEST」と呼ばれるチェックリストによる確認です。INVESTはそれぞれ以下の要素の頭文字をとったものです。
- I:Independent(独立):他の要素から独立しており、他の要素と重複する内容がないこと
- N:Negotiable(交渉可能性):ユーザーや開発者などで話し合いができること
- V:Valuable(価値):ユーザーにとって価値があること
- E:Estimable(見積可能性):開発に必要な作業量が見積もりやすいこと
- S:Small(小ささ):記述範囲が小さくアジャイル開発のサイクルに収まること
- T:Testable(テスト可能性):テストを行える内容であること
※参考:What does INVEST Stand For?
ユーザーストーリーマッピング
ユーザーストーリーを整理する際に有効なのが、ユーザーストーリーマッピングです。ユーザーストーリーマッピングとは、それぞれのユーザーストーリーを「時間軸」と「優先順位軸」の2軸で整理する方法です。
たとえば、ECサイトで商品を購入するに至るまでを想像すると、以下のようなユーザーストーリーが挙げられるでしょう。
- ユーザーは自身が求めている商品をキーワード検索で探す
- ユーザーは購入する商品を選択し、カートに入れる
- ユーザーは支払情報や配送先を選択し、購入を確定する
- ユーザーは購入したい商品をお気に入り登録して管理する
- ユーザーは自分が求めている分野の商品を探しやすくするため、商品カテゴリーにより商品を絞り込む
これらを時間軸と優先順位軸で整理すると以下のようなまとめ方ができます。
このようにユーザーストーリーをマッピングすることで、たとえば最低限必須となる優先順位高の機能を最初のリリースまでに開発し、残りの機能は2回目のリリースに開発するといった整理がしやすくなります。
ユーザーストーリーを活用した開発イメージ
最後に、ユーザーストーリーを実際の開発の場面で活用する際のイメージをご紹介します。
カードへの書き出し
ここまでご紹介した通り、ユーザーの要求をカードや付箋などへと書き出します。カードに記載する内容はシンプルなものとし、開発者との会話によって補足します。
このとき、ひとつひとつの要求はできるだけ小さいものとし、依存関係を持たせないことがポイントです。たとえば、以下の例はひとつの要求が大きくなってしまい、そのままでは開発しにくいと考えられ、より小さい要求に分割していく必要があります。
【×】
- ユーザーは自分が求めている商品を探す
【〇】
- ユーザーは自分が求めている商品を探すために商品名や価格を基に検索する
- ユーザーは自分が求めている商品を探すために新商品をチェックする
- ユーザーは自分が求めている商品を探すために口コミ情報を確認する
一方で、ユーザーの要求を十分小さく、また依存関係を排除するのは簡単ではありません。
アジャイル開発に精通したメンバーのサポートも重要となります。
ユーザーストーリーマッピング
挙げられたユーザーストーリーをマッピングしていきます。
マッピング作業は一人で実施するのではなく、チームで実施すべきものです。
ユーザー自身に参加してもらうことがベストですが、難しい場合はユーザーに詳しいステークホルダーなどにも参加を要請します。
まず、時間軸としてユーザーの行動フローを定義します。このとき、できるだけ広くユーザーの行動を想定することがポイントです。
開発するプロダクトを実際に利用する場面だけではなく、その前後の行動も含めて検討することで、よりユーザー行動を深堀できます。複数のユーザータイプが存在するのであれば、無理に一つにまとめず、複数のマッピングを行ってもよいでしょう。
次に、ユーザーストーリーの優先度に応じて各行動に対するストーリーをマッピングしていきます。
個々のユーザーストーリーを書いた付箋を利用すると、議論を通して優先度の入れ替えがしやすくなります。
最後に、リリースラインとしてどこまでの機能を初期の開発対象とするかを決定します。
スプリントの実施と優先度の見直し
ユーザーストーリーマッピングで定義したリリースラインに向けて、実際に機能を開発していきます。
このとき重要となるのが、上述した3つのCのうちの「Conversation(会話)」です。開発者が認識齟齬なく機能を開発できるようにコミュニケーションを行います。
開発途中において、開発すべき機能の見直しを行うべき場面もあるでしょう。
機能の見直しがしやすいことはアジャイル開発のメリットです。
見直しを行う場合、ユーザーストーリーマッピングとして作成したものも必要に応じて更新していくことで、チームメンバーでの情報共有もしやすくなります。
まとめ
この記事では、アジャイル開発において活用できるユーザーストーリーについてご紹介しました。
アジャイル開発によりプロダクトを開発していく際には、ユーザーストーリーとして「ユーザー視点により」「アジャイル開発に適した小さい単位で」要求を整理していくことが有効です。
ユースケースとは少し異なった視点で要求をまとめていくことで、よりアジャイル開発にフィットした要求整理を実現することができます。
一方で、ユーザーストーリーによるユーザー要求の整理は、慣れていないと実施が難しいケースもあります。
当社では、これまで多数のお客さまに対してアジャイル開発を支援してまいりました。
アジャイル開発においてユーザーストーリーを活用したユーザー要求の整理を行いたい方、またはアジャイル開発全般について支援をご検討されたい方は、ぜひ一度お問い合わせください。
About The Author
スパイスファクトリー公式
スパイスファクトリーは世界がより良い⽅向に向かうよう、変化を加速させる “触媒”(スパイス)としての役割を全うすることをミッションとしたDXエージェンシーです。最新テクノロジー、UIUX、アート、マーケティングなどの技術・メソッドを⽤いて、モノゴトを素早く、美しく、本質的に再定義し、幅広いクライアントのデジタルトランスフォーメーションを⽀援しています。