この記事に関連するお役立ち資料

AIを活用した業務自動化 事例BOOK
無料ダウンロード
多くの企業がソフト開発に力を入れている昨今、よりスピーディにプロジェクトを進めるためにアジャイル開発が導入されています。
アジャイル開発のスクラムで主に利用されているユーザーストーリーの概要や書き方、おすすめのテンプレートなどを解説します。


ユーザーストーリーについて、以下の2つの用語から解説します。
ユーザーストーリー
ユーザーストーリーマッピング
ユーザーストーリーとは、開発においてソフトウェア機能が叶えるべき経験・体験を「誰が・どういう目的で・何をしたいのか」と簡潔に文章で表したものを指します。
一般に1文で表されることが多く、ソフトウェアの機能をわかりやすく平易な言葉で説明し、ソフトウェアの機能が顧客にどのように価値を提供するかを示します。
システム開発の中でも、とくに小さなサイクルで行程を繰り返すアジャイル開発は全体像が見えづらく、ユーザーストーリーが欠かせません。
ユーザーストーリーと似たような言葉で、ユースケースがあります。
ユースケースは、ユーザーとのシステムのやり取りの要件定義を指し、分析、設計といったプロセスが続きます。
一方ユーザーストーリーは要件ではありませんから、ユーザーが何をしたいかに焦点を当てます。
ユーザーストーリー作成後は、ユーザーとプログラマの会話というプロセスを経て、詳細が決まっていきます。
ユーザーストーリーを時系列に、優先順位順に配置したものをユーザーストーリーマップといい、ユーザーストーリーマップを書く手法をユーザーストーリーマッピングと言います。
ユーザーストーリーマッピングは、ユーザーストーリーを付箋紙などに書き出して、時系列と優先度に沿ってマッピングします。
ユーザーストーリーマッピングの活用により、開発の優先順序を適切に定められ、開発メンバーにも情報を共有しやすくなるでしょう。
ユーザーストーリーマップと同じく、ユーザーの行動を視覚化する手法として、カスタマージャーニーマップも挙げられます。
カスタマージャーニーマップは、ユーザーが商品やサービスを購入するプロセスを思考や感情も踏まえて分析するため、適切なアプローチには欠かせません。
ユーザーストーリーマップは、提供する機能の価値や開発の優先順位を整理するのに使われるのに対し、カスタマージャーニーはユーザーの行動を想定したうえで、機能のポイントを洗い出します。

ユーザーストーリーマッピングが必要な理由として、以下4つが挙げられます。
開発スタッフの認識齟齬を回避できる
プロダクトの目的・価値が可視化できる
必要な機能・要件を判断できる
開発の優先順位を定めやすくなる
通常、システムの開発には複数名がかかわっており、開発を適切に進めるためには、明確な目標への共同理解が欠かせません。
ユーザーストーリーマッピングは、ユーザーの行動を軸に、プロダクトが実現したい・実現すべき価値を時系列・優先順位順にわかりやすく可視化します。
そのため、ユーザーストーリーでの目標の可視化で、お互いに目的や開発内容を理解していれば、開発スタッフの認識齟齬を回避できるでしょう。
ユーザーストーリーマッピングでは、プロダクトの目的・価値が可視化できます。
ユーザーの行動とプロダクトの価値を視覚的に整理することで、開発スタッフの方向性も定まり、ユーザーにプロダクトの価値をよりわかりやすく伝えられるでしょう。
ユーザーストーリーマッピングによりプロダクトの可視化をすることで、顧客が本当に求めている機能や要件を判断しやすくなります。
仕様変更に対応しやすいアジャイル開発では、度重なる変更・追加などで、完成品がユーザーの求めるものと異なってしまう場合も少なくありません。
ユーザーストーリーを作成することで、変更・追加する機能の必要性の判断に大いに役立つでしょう。
また、ユーザーストーリーマップは、プロダクトの可視化をし、提供すべきプロダクトの開発優先順位を定めやすくします。
開発の全体像が把握しやすくなるため、何が最低限必要なのかを見極めやすくなるでしょう。


特にユーザーストーリーが必要なシーンとして、以下の3つの場合が挙げられます。
アジャイル開発をする場合
作業や課題が多くプロダクトバックログが必要な場合
エンジニアとステークホルダーの認識に齟齬がある場合
アジャイル開発において、多くは詳細なスケジュールを決めません。
そのため、短い開発サイクルを繰り返している間に全体像が見えづらくなり、開発の軸がずれたり、スケジュールのコントロールが難しくなることが多々あります。
ユーザーストーリーは、スケジュールを明確にし、開発側の都合に引きずられず、顧客の視点を維持しながら開発を進めるために必要です。
また、開発に携わっていると手数が多く、プロダクトバックログを必要とすることも多いです。
しかし、作業や課題に優先順位がつけられず、工数が少ない・売上インパクトの高い・人件費が削れるものから着手し、ユーザー目線から逸れることも少なくありません。
その場合、ユーザーストーリーを使用し、ユーザーが求めているものを常に追求することで、着手すべき優先順位を明確にできます。
1か月や3か月など、固定の期間を設けてユーザーストーリーの見直しを行い、常に優先順位の把握に努めるのがおすすめです。
【関連記事】プロダクトバックログとは|アジャイル開発に欠かせない役割や作成方法を解説
要件定義書などをきちんと書いていても、開発サイクルを繰り返しているエンジニアは、プロダクト・サービスのゴールや機能の目的などが不明瞭になることが少なくありません。
エンジニアとステークホルダーの認識に齟齬を生まないために、目的やゴールの共有を小さい単位でできるユーザーストーリーを使いましょう。
プロダクトの可視化がされれば、開発チームのベクトルが同じ向きになり、メンバーそれぞれが課題を理解し、実装と検証ができます。

ユーザーストーリーマッピングに必要な事前知識として、以下の3つが挙げられます。
3C
テンプレート
原則
ユーザーストーリーは、以下の3つの「C」に注意して作成します。
・Card(カード):ユーザーの要求内容などのユーザーストーリーの要素を、カードまたは付箋などに書く
・Conversation(会話):ストーリーの背景などの詳細は、顧客との会話を通じて引き出す
・Confirmation(確認):ストーリーごとにテストし、顧客との認識に違いがないか、正しく実装されているかを確認する
上記のCardに記載されるテンプレートとして、次のものが提唱されています。
“As a
, I want so that ”
この文章を日本語訳すると、以下のようになります。
「<だれ>として、<何か>を達成したい。それは<理由>だからだ」
例として言葉をあてはめてみると、「顧客として、オンライン上で服を購入したい。それは店に行く時間がないからだ」というユーザーストーリーが生まれます。
ユーザーストーリーを記述する際のガイドラインとして、Bill Wake氏によって作成されたアジャイルソフトウェア開発プロジェクトの原則があります。
頭文字をとって、「INVEST」と呼ばれています。
・Independent(独立している):それぞれ独立して重複しないものであること
・Negotiable(交渉可能なものである):ユーザーと開発者によって話し合い交渉しながら作成すること
・Valuable(価値がある):ユーザーにとって価値が記されていること
・Estimable(見積もりができる):ユーザーがスケジュールを立てたり、優先順位をつけられること
・Small(小さい):把握がしやすく、正確な見積もりができるサイズ感であること
・Testable(テストできる):ユーザーストーリーが達成できているのか、確認できること

ユーザーストーリーマッピングの書き方として、以下の流れが一般的です。
ペルソナを決定する
必要な機能・プロダクトを検討する
MVP・開発の優先順位を決める
まずは、ペルソナを設定します。
ペルソナとは、製品やサービスを実際に利用する顧客をイメージしたユーザー像です。
より効果的にユーザーストーリーマッピングを進めたい場合は、顧客となるユーザーの性別や年齢・趣味・行動・生活スタイル・思考など細かく洗い出し、より具体的な人物像の設定をしておきましょう。
ペルソナとして設定したユーザーの大まかな行動・詳細の行動、そのときの感情などを時系列に書き出して並べていきます。
ユーザーの行動の中から、必要な機能やプロダクトをマッピングしていきます。
ユーザーの各行動に対してのプロダクトの価値や提供したい価値などを、自由に書き出しましょう。
ピックアップした機能を近い内容でグループ分けし、深掘りすることでより品質が向上します。
ユーザーの行動・必要な機能をリストアップしたら、最後に実装する機能の優先順位をつけるため、ユーザーにもたらすべき価値をあらためて議論します。
実際にリストアップした機能をすべて実現しようとしても、スケジュールや予算を考えると現実的ではありません。
「顧客や市場の反応を得るために最低限必要なものはなにか」という視点で、開発の優先順位や初回リリース時点で最低限必要な機能(MVP)を決めましょう。
たとえば、顧客が商品を購入するシステムであれば、「選ぶ」「購入する」「情報を入力する」といった行動ベースでとらえるのがポイントです。
ユーザーストーリーマッピングは、詳細な要件定義やタスク設計までをカバーできるものではないため、
それをベースに要件定義や設計を行っていきます。

ユーザーストーリーマッピングにおすすめのテンプレートを、以下の表にまとめました。
Lucidspark | 無制限のキャンバスが活用できるため、アイデアやタスクの書きとめ、要件のレビュー、実装可能な機能のブレインストーミングなどを一元的に実行可能 |
miro | オンラインホワイトボード1つでリアルタイムのコラボレーションがいつでもどこでも可能 |
smartsheet | Excelのユーザーストーリーマッピングテンプレート |

ユーザーストーリーはニーズを把握することで、機能過多や開発の行き詰まりを防止し、適切に開発を進める重要なツールです。
また、開発に関わる人の共通認識を構築する上でも欠かせません。
ユーザーストーリーマッピングを有効活用して、開発をより効果的に進めましょう。
なお、開発チームの用意が間に合わない、アジャイル開発で構築したいものがあるといったご相談はぜひお気軽にお問い合わせください。
この記事に関連するお役立ち資料を無料ダウンロード

AIを活用した業務自動化 事例BOOK
AI技術を活用した社内業務効率化の基本から、実際の導入ステップまでをわかりやすく解説しています。
下記フォームにご記入下さい。(30秒)
テックユニットは、下記のような方におすすめできるサービスです。
お気軽にご相談ください。
・開発リソースの確保に困っている方
・企業の新規事業ご担当者様
・保守運用を移管したい方
・開発の引き継ぎを依頼したい方


おすすめの記事
関連する記事はこちら
システム開発依頼書(RFP)とは?作成法とポイント・注意点
システム開発を外部に依頼する際の手続きがわからないシステム開発依頼書(RFP)の作成方法がわからないベンダーに依頼する際、具体的な要件をまとめるのが難しいシステム開発を外部に依頼する際には、システム開発依頼書(RFP)を作成する必要がありま...
Google Firebaseとは?主な機能やメリットを徹底紹介
Google Firebaseは、モバイルアプリやWebアプリのためのバックエンドプラットフォームです。ユーザー認証、リアルタイムデータベース、ストレージ、プッシュ通知、アプリ分析などの豊富な機能があり、開発者はサーバーの設定や管理の手間を...
Elasticsearchとは?特徴、出来ることを徹底解説 [初心者向け]
Elasticsearchとは、検索や解析、分析に活用できる有用なツールです。ツールの優位性を把握することで、業務内でも有効活用できるはずです。スケーラビリティに優れており、LuceneをベースにJSON形式でデータを取り扱うため、Java...
[入門] AWS Lambdaってなに? | サービス内容や用途、導入のメリットを徹底解説
AWS Lambdaは、Amazon Web Services(AWS)が提供するサーバーレスコンピューティングサービスです。AWS Lambdaを使うことで、サーバーの管理やスケーリングの手間を省き、データの加工処理やバックエンド処理を効...
オーバーエンジニアリングとは?原因や回避する方法を解説
オーバーエンジニアリングは、成果物において本来不要な機能を実装することを指します。気を利かせて開発したものの、過剰または非効率な設計となり、最短コースでプロジェクトを進められなくなる難点があります。本記事では、オーバーエンジニアリングの基本...
Node.js とはなにか?できることを初心者にもわかりやすく解説
Node.jsは、JavaScriptをクライアントサイド・サーバーサイドのどちらにも使える環境を作れます。ウェブサーバーやAPIサーバー、ストリーミングサーバー、リアルタイム通信アプリケーションなど、さまざまな種類のアプリケーションの開発...
3分で分かるTerraform | AWS等のインフラ整備に役立つ"IaC"をわかりやすく解説
Terraformは「IaCツール」としてエンジニアから人気があるため、名前はご存知かもしれません。では、インフラ設定作業を自動化するために多くの開発現場で使われているTerraformは、どのようなメリットがあるのでしょうか。本記事では、...
Laravelとは?読み方や特徴・将来性を現役エンジニアがわかりやすく解説
システム開発やソフトウェア開発において、PHPで書かれたフレームワークの1つであるLaravel。PHPのフレームワークの中で最も人気を集めていますが、扱うためにはどのような特徴があり、何に向いているのかを明確にしておく必要があります。本記...
【3分解説】MongoDBとは?基本やメリット、使いどころを紹介
近年、急速なデジタル化に伴いデータベースへの要求が増え、既存の表形式のRDB(リレーショナルデータベース)では対応できないケースが少なくありません。MongoDBは、RDBで対応できない際によく利用されるNoSQLデータベースの1つです。で...
サーバーレスとは?メリットとデメリットも含めて解説
近年、クラウドを活用する企業が増え、よりエンジニアの手間と時間を削減できるサーバーレスが注目されています。しかし、サーバーレスとクラウドサーバーの違いをきちんと説明できる方はおそらく少ないでしょう。本記事では、サーバーレスとは何か、メリット...
AWSとはどんなクラウドサービス?初心者にもわかりやすく簡単に説明・解説
近年ITの進化はすさまじく、日常やビジネスにおいてクラウドサービスは欠かせません。代表的なクラウドサービスの一つとして、Amazon Web Services(AWS)が挙げられますが、AWSがどのようなものなのか説明できる人は少ないでしょ...
リグレッションテストとは?観点や方法・デグレーションとの違いを解説
システム開発は複雑になるほど、改修を実施した際に不具合の発生リスクが高まります。そのため、改修内容に応じて、影響がでていないかをチェックするリグレッションテストの実施が求められます。不具合を早期に検出できれば、リリース後の発覚による大きな手...
人気記事ランキング
おすすめ記事