PMプロの知恵コーナー
先号   次号

ユーザー・ストーリー

竹腰 重徳 [プロフィール] 
  Email : こちら :10月号

 アジャイルでは、顧客あるいはユーザーの要求を表現する方法として、ユーザー・ストーリー(以降ストーリー)が多く使われます。ストーリーは、顧客またはユーザーの視点からシステムに要求される機能(フィーチャー)を簡潔に記述したもので、要求を表現するのに軽量な手法です (1) 。
 XPの創始者のひとりであるRon Jeffriesは、ストーリーは、要求内容を見積や優先順位も一緒に含めて「カード」に書くこと、ストーリーの背後にある詳細事項は「対話」から引き出せること、ストーリー単位の受入テストによりストーリーが正しく実装されているかを「確認」することを特徴としてあげています。ストーリーの特徴は3Cと呼ばれています。3Cとは、Card(カード)、Conversation(対話)、Confirmation(確認)のことです。ストーリーにより、要求を対話によって創造的に顧客の言葉として導き出すことができ、開発チームにとっても理解できる内容で、顧客と開発チームの要求に関するコミュニケーションを容易にします。

ストーリー・カード

 ストーリーは、誰にとっての機能か、その機能で何を達成したいのか、およびその理由に焦点を当てます。表現方法としては、一般的に次のような文章形式が用いられます。
 「<役割(ユーザーの種類)>として、<機能や性能>が欲しい。それは<ビジネス価値や目的>のためである」
 例えば、この形式を用いて表現すると、次のようになります。
 「<オンライン・ショッピング利用者>として、<商品の支払い方法を知りたい>。それは<商品の注文をしたい>ためである」
 ストーリーが、なぜ軽量な手法かというと、ウォーターフォールのようにすべての要求とその大量のドキュメントを開発に先立って完了させておく必要がないからです。アジャイルでは、開発の前にすべての要求を明確にする必要がなく、ジャストインタイムに要求が明確になっていればいいのです。例えば、反復計画を立てる前までに、その反復期間で開発する可能な要求部分のみを明確化しておけばよいのです。
 要求収集は、ストーリーの簡単な記述をストリー・カードといわれるカードに書くことから始めます。もちろん大規模なチームや地理的に分散したチームの場合は手書きではなく、コンピューターに入力することもあります。いずれにしても、ストリー・カードが、要求収集のスタートとなります。それぞれのストーリーについて顧客あるいはユーザーと開発チームは対話を重ねます。対話は、必要があれば何度でも行い、必要に応じて関係者も参加します。そして、次のような点を考慮しながら、ストーリーの精度を上げていきます。
他のストーリーに依存せず、独立している(Independent)
内容が交渉可能である(Negotiable)
価値がある(Valuable)
見積可能である(Estimable)
大きさは1つの反復期間に収まる範囲に小さい(Small)
テスト可能である(Testable)
 これらは、ストーリーを記述していく上でのガイドラインといわれ、頭文字をとってINVESTと呼ばれています。
 ストーリーは、階層構造をしています。例えば、「新規顧客の数を増やしたい」というビジネス・ニーズの要請により、「オンライン・ショッピング・システムを構築する」というプロダクト・ビジョンを作成します。次に、このプロダクト・ビジョンを実現するために、「ユーザーが欲しい商品を選択できる」「ユーザーが選択した商品の支払いができる」などのような機能(フィーチャー)に展開します。そして「ユーザーが選択した商品の支払いができる」という機能は、「ユーザーとしてクレジットで支払いたい」「ユーザーとして銀行振込で支払いたい」「ユーザーとしてコンビニで支払いたい」というように3つのストーリーに展開されます。さらに開発チームがこれらのストーリーを、反復計画の中でユーザー・インターフェース、データベースなどシステム開発に関係するタスクに展開します。このように、ストーリーの構造は、一般的に、プロダクト・ビジョン->機能(フィーチャー)->ストーリー->タスクのような階層構造をしています (2) 。
 ストーリーはビジネス価値をベースに優先順位をつけて、プロダクト・バックログというリポジトリに蓄積され、リリース計画や反復計画で使われます。
 なお、要求をストーリーに記述する前に、対象となる典型的な顧客あるいはユーザーの属性、彼らが何に困っているか、彼らが望むプロダクトの価値は何なのかを調べ、ペルソナとしてユーザーの特徴をまとめておくと、ストーリーの内容はより的確なものになります。
 アジャイルは顧客との協調を重視しています。ストーリーを利用することにより、開発チームは、顧客あるいはユーザーとのコミュニケーションが容易となり、顧客が何を要求し、そのビジネス価値や目的が何であるかを真に理解できます。したがって顧客のビジネス価値を実感でき、自分の開発の仕事が顧客に役立つという意義も感ずることができ、モチベーション向上にもつながります。

以上

参考資料
(1) マイク コーン、アジャイルな見積と計画づくり、マイコミ、2011
(2) Mike Griffiths,PMI-ACP Exam Prep,RMC、2012

ページトップに戻る