ユーザーストーリーは、昨今の主流であるアジャイル開発において有効な手法の1つです。しかし、ユーザーストーリーを採用していない開発現場も少なくないため、どのようなものか知らない方も多いのではないでしょうか。
この記事では、ユーザーストーリーとは何かという基礎知識から書き方のコツ、失敗しないポイントまで幅広くお伝えします。
- もくじ
1.ユーザーストーリーとは
まずは「ユーザーストーリー」とはどのようなものなのか、概要と作成する目的、ユースケースとの違いについて解説します。
1-1 ユーザーストーリーとは
ユーザーストーリーとは、ユーザーが思い描く「理想のユーザー体験」を端的に言語化したものです。
アジャイル開発において、要件定義の前段階でユーザーストーリーを作成することがあります。
例えば、動画編集ソフトのユーザーストーリーを作成する場合、「クリエイターとして、動画に字幕を付けたい。それは、動画の内容をわかりやすく伝えたいからだ」といったものが挙げられます。この例では、動画編集ソフトを使うユーザー(=クリエイター)が求める体験を考え、ストーリー形式で表現しています。
1-2 ユーザーストーリーを作成する目的
ユーザーストーリーを作成する目的は、「ユーザーの要求とプロダクトの価値を正しく結びつけること」です。
多くの開発者は、新しいプロダクトに大きな価値を込めてユーザーに提供するでしょう。しかし当のユーザーが、必ずしもその価値を見出してくれるとは限りません。ユーザーが求めるものに結びついた価値でなければ、結果として開発者の独りよがりとなるのです。
そこで、ユーザーストーリーの作成が効果的となります。ユーザーストーリーは、ユーザー目線でサービスに対する要求を記述し、その価値(目的)と結びつけるものです。端的に言語化することで要求・価値の結びつきが明確となり、「ユーザーにとっての価値」を見つけやすくなるでしょう。
1-3 ユースケースとの違い
ユースケース |
・ユーザーとソフトウェアのやり取りを表現するもの |
---|---|
ユーザーストーリー |
・ユーザーが思い描く「理想のユーザー体験」を端的に言語化したもの |
ユーザーストーリーと同じく、要件定義で使われる「ユースケース」との違いを把握しておきましょう。
ユースケースは、ユーザーとソフトウェアのやり取りを表現するものです。
たとえば、「ユーザーはシステムにデータを登録する」といったユースケースが考えられます。このユースケースは、「ユーザーはデータ登録が必要」という前提にもとづいています。必要な機能に対して、ユーザーがどう利用するのかを明確化するのがユースケースです。
一方でユーザーストーリーは、そもそも「データ登録が必要」なのかを、その目的を結びつけながら考えます。ユーザーストーリーは要件を洗い出すうえで役立ちますが、ユースケースのように機能の具体的な利用方法にフォーカスするわけではありません。
ユースケースは、要件定義書に「ユースケース図」として記載されることもあり、要件の一部と扱われることが多いです。
一方、ユーザーストーリーは要件定義を補助するものですが、厳密な要件ではありません。ただし、アジャイル開発の現場によっては、ユーザーストーリーを要件定義の代替手段とする場合もあります。
2.ユーザーストーリーの作成によって得られるメリット
ユーザーストーリーを作成することで得られるメリットは、主に次の2つです。
2-1 ユーザーと対話がしやすくなる
ユーザーストーリーは、開発者とユーザーの対話を円滑にするものです。ユーザーストーリーを手掛かりにして、ユーザーが求めるサービスのあるべき姿を掘り下げられます。
ユーザーストーリーは、ユーザーや顧客にも伝わるような堅苦しくない言葉で表現します。そのため、ユーザーストーリーを用いることでユーザーや顧客と「プロダクトの価値」を共有しやすくなるでしょう。
2-2 開発の方向性がぶれにくくなる
ユーザーストーリーを作成することで、開発の方向性がぶれにくくなります。
短いサイクルを通して多くの変更に対応していくアジャイル開発は、全体像を把握しづらいのが難点です。途中で何度も方向性が変わり、本来目指していたプロダクトの価値を見失ってしまうこともあります。
その点、ユーザーストーリーという形で言語化しておけば、ユーザーから見たプロダクトの価値にいつでも立ち返ることが可能です。ユーザーストーリーをすぐに確認できるようにすることで、方向性がぶれにくくなるでしょう。
3.ユーザーストーリーの書き方
ユーザーストーリーは、次の形式に当てはめて書くのが基本です。
"【人】として、【何】をしたい。それは、【なぜ】だからだ"
【人】にはサービスを利用する人物像、【何】にはその人が求める機能や実現したいことを書きます。【なぜ】には、それが必要となる理由をユーザー目線で書きましょう。
たとえば動画編集ソフトの場合、次のようなユーザーストーリーが考えられます。
"【クリエイター】として、【動画をカット】したい。それは、【無駄をなくして動画をコンパクトにしたい】からだ"
前述のように、ユーザーや顧客がわかりやすいような堅苦しくない言葉を選びましょう。また、具体的な要件への落とし込みは後の工程で行うため、機能レベルまで細かく掘り下げる必要はありません。
4.アジャイル開発におけるユーザーストーリーマッピングの進め方
アジャイル開発でユーザーストーリーを活用する場合、「ユーザーストーリーマッピング」を行う必要があります。
ユーザーストーリーマッピングとは、各ユーザーストーリーを開発プロジェクトに結びつけて、開発に取り入れやすくすることです。
ここでは、アジャイル開発におけるユーザーストーリーマッピングの大まかな進め方を紹介します。
① ペルソナの設定
まずは、ペルソナを設定しましょう。つまり、プロダクトを利用することが想定される具体的なユーザー像をひと通り洗い出し、整理しておく必要があります。
ニーズや行動パターンが変わってくるペルソナは区別して扱ってください。一般ユーザー・管理者といった権限の違いはもちろん、年齢や性別、スキルレベル(初心者~上級者)など幅広い観点を考慮しましょう。
② ユーザーストーリーの作成
設定したペルソナごとにユーザーストーリーを作成します。ユーザーストーリーは、付箋やカードを用いて作成することが一般的です。昨今では、ユーザーストーリーを作成・管理できるITツールもあります。
各ペルソナが抱えている要求や悩みを洗い出し、ユーザーがプロダクトに求める価値を明らかにしましょう。実際にユーザーがプロダクトを使うことをイメージして考えることが大切です。
③ 優先度や時系列での整理
作成したユーザーストーリーを優先度や時系列で整理し、並べていきましょう。優先度は、ユーザーがより強く抱えている要求や悩み、故障などのリスクを持つユーザーストーリーほど高くします。また、ユーザーが使う際の時系列順に並べることで、機能の開発順序を決めやすくなります。
④ 開発すべき機能・プロダクトの割り当て
整理した各ユーザーストーリーに対して、開発すべき機能・プロダクトを割り当てます。各ユーザーストーリーに書かれたユーザー体験を実現するために、どのような機能・プロダクトが必要となるか考えて、書き出しましょう。
⑤ 開発・リリース順序の決定
開発すべき機能・プロダクトがひと通り挙がったところで、実際の開発・リリース順序を決定します。
優先度が高く、時系列が早いものから開発・リリースするのが基本です。アジャイル開発の各サイクルにおけるリリースで区切ると、計画が立てやすくなります。
⑥ プロダクトバックログの更新
アジャイル開発の作業項目をリスト化した「プロダクトバックログ」に、新しい機能・プロダクトを追加します。その後、具体的な開発・リリース計画を立てましょう。
5.ユーザーストーリーの作成で失敗しないためのポイント
ユーザーストーリーの作成で失敗しないためのポイントは、主に次の2つです。
5-1 「INVEST」に沿って作成する
ユーザーストーリーを作成する際には、「INVEST」に沿って考えましょう。INVESTとは下記6要素の頭文字を取ったもので、理想的なユーザーストーリーを作成するために考慮すべき観点のことです。
観点(INVEST) | 説明 |
---|---|
Independent(独立性) | 各ユーザーストーリーが重複せず独立しているか |
Negotiable(交渉可能性) | ユーザーや顧客と交渉する余地があるか |
Valuable(価値) | ユーザーにとって価値あるものか |
Estimable(見積もり可能性) | 開発チームが作業量を見積もれるか |
Small(小ささ) | アジャイルの開発サイクルに収まる小さいものか |
Testable(テスト可能性) | テストが行えるものか |
INVESTに従うことで、高品質なユーザーストーリーを考えやすくなるでしょう。
5-2 ツールやテンプレートを活用して効率化する
ユーザーストーリーの数が多いと、作成やマッピング、管理に手間がかかります。ユーザーストーリーを作成するために、以降の工程が圧迫されるのでは本末転倒です。
ユーザーストーリーを作成できるツールや、表形式でユーザーストーリーを整理できるテンプレートが存在します。工数の増大を抑えるために、これらを活用して効率化するとよいでしょう。
まとめ
ユーザーストーリーとは、ユーザーが思い描く「理想のユーザー体験」を端的に言語化したものです。
"【人】として、【何】をしたい。それは、【なぜ】だからだ " といった形で表現することで、ユーザーの要求とプロダクトの価値を正しく結びつけられます。
アジャイル開発においてはユーザーと対話がしやすくなる、開発の方向性がぶれにくくなる、といったメリットが得られます。ユーザーストーリーを有効活用して、アジャイル開発の品質を向上しましょう。