More Related Content
Similar to ユーザーストーリーワークショップ (20)
ユーザーストーリーワークショップ
- 2. Agenda
2
1. 動機付け
2. アジャイル開発のおさらい
3. WS:共通のお題決め
4. WS:プラグマティック・ペルソナ
5. WS:プロダクトバックログ作成
6. まとめ
- 4. ダレ、イッタイ。
4
H/N: You&I(読み:ユーアンドアイ)
出身: 生まれも育ちも名古屋市
年齢: 30代中盤
本職: 商学部出身の職業プログラマ
言語: C++, C#, VB6.0, 日本語COBOL
SNS: @you_and_i
所属: 名古屋アジャイル勉強会
プログラミング生放送 名古屋支部
わんくま同盟 名古屋勉強会
- 5. ATTENTION
5
そもそも、あまりメモを取る時間はな
いような進行ですが、すべてのメモを
取る必要はありません。
今回のこのワークショップ資料はWeb
公開致します。ですからワークショッ
プに集中して頂ければ幸いです。
- 7. 1.動機付け (1/5)
7
名古屋アジャイル勉強会のワークショップにて、プロ
ジェクトの問題について取りあげると・・・、
スケジュール通りにいかない
頻繁な再スケジュール
仕様が決まらない、やりたい事が不明
追加仕様だらけ
といったお話を良く伺います。
- 8. 1.動機付け (2/5)
8
このような問題に対して、名古屋アジャイル勉強会
として私が出来る事は問題解決の為のヒントの
提供です。
アジャイル開発において、こうすれば必ず解決!と
いう、いわゆる「銀の弾丸」は存在しません。
皆さんの抱える問題の原因だったり、解決の糸口
は皆さん自身の中にあると私は思います。
その解決の為のヒントとなるものを、名古屋アジャイ
ル勉強会では提供し続けています。
- 9. 1.動機付け (3/5)
9
今回のワークショップテーマ「ユーザーストーリー作成
ワークショップ」では、
顧客のやりたい事を導出する
集まったやりたい事を(それなりの精度で)見積も
る
この2つの事を行う為に、数あるアジャイルプラク
ティスや問題解決の手法の中から私の独断と偏
見で選んだものをご体験頂きます。
- 10. 1.動機付け (4/5)
10
このワークショップでのお願い事
職場では失敗すると大変な事になりますが、この
勉強会では失敗しても、それ程大変な事にはな
りません。どんどん失敗しましょう!
アジャイルなやり方(の一つ)を体験して頂く
普段のやり方と比較して、アジャイルなやり方の
良い所、悪い所を見つける
体験した事を職場に持ち帰る
- 11. 1.動機付け (5/5)
11
成功は失敗の積み重ねから生まれるものだと思
います。アジャイル開発では早めに失敗を経験す
る為の仕組みを用意しています。
最終的に成功裏に終わればすべて良し!?
何か問題が起こった際には、その対処方法につ
いて、選択肢が多いに越したことはありません。
願わくは、今日の体験がその選択肢の一つにな
れば幸いです。
- 13. 2.アジャイル開発のおさらい(1/6)
13
2001年に、アジャイル開発手法を支持する多く
の著名人によって公開された、アジャイル開発手
法の精神をまとめた文書が、アジャイルマニフェス
ト(アジャイルソフトウェア開発宣言)である。日本
語訳の公開は2010年。
http://agilemanifesto.org/iso/ja/
アジャイルマニフェストだけではなく、合わせて12
の原則も公開されており、これらを含めてアジャイ
ル開発の根底を成している。
- 14. 2.アジャイル開発のおさらい(2/6)
14
1960年 :トヨタ生産方式体系化
1986年 :Scrum命名元論文発表
1988年 :Triumph of the Lean
Production System記事発表
1992年 :ザ・ゴール出版
1996年 :Scrum体系化
1998年 :RUP発表
1999年 :XP入門出版
2001年 :アジャイルマニフェスト制定
- 15. 2.アジャイル開発のおさらい(3/6)
15
アジャイルな開発プロセス
1. Crystal Family(The Crystal
methodology:Crystal Clear, etc.)
2. DSDM(Dynamic Systems Development
Method:反復型開発)
3. FDD(Feature-Driven Development)
4. RUP(Rational Unified Process)/UP
5. Scrum
6. eXtreme Programming(XP)
- 16. 2.アジャイル開発のおさらい(4/6)
16
アジャイルな開発プロセスで定義されている事
1. ゴール(完了条件)を決める
2. ロール(役割)を決める
3. 見積もり
4. 要件定義(フィーチャー、ユーザーストーリー、バックログ)
5. タイムボックス管理(イテレーション、スプリント)
6. 製品リリース管理
7. ふりかえり
8. PDCAサイクル(Plan-Do-Check-Act cycle)
9. 見える化
- 17. 2.アジャイル開発のおさらい(5/6)
17
それで、アジャイル開発って具体的に
何をするのでしょうか?って思います
よね。
その一部を今から体験して頂くので
説明はしません!
物足りなければ、告知文で紹介して
いる書籍を読んでみて下さい。
- 18. 2.アジャイル開発のおさらい(6/6)
18
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 20. 自己紹介
20
ワークショップに入るにあたり、まずは
共同作業する事になる、同じテー
ブル内の方々と仲良くなりましょう。
打ち解ける為にはまず自分を名乗る
事から始めたいと思います。
- 21. パッケージデザイン
21
アジャイルサムライのインセプションデッキの10の
手強い質問から「パッケージデザイン」を採用。
雑誌の広告ページのように、1ページや1枚紙でプロ
ジェクトをアピールするとしたら、どのような内容になる
でしょうか。
ビジョンの定義
プロジェクトの成果物名は何か
プロジェクトの成果物の目玉は何か
ユーザー視点で書く
今回は自己紹介なので1枚の紙で自己アピール
してみましょう。
時間:10分
- 22. パッケージデザイン
[ご自身の名前] 時間:10分
[素敵な自画像]
[自分を表す最高のキャッチコピー]
[今日の参加目的や意気込み(その1)]
[今日の参加目的や意気込み(その2)]
22
[今日の参加目的や意気込み(その3)]
- 23. 開発の流れ
23
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 24. 3.共通のお題決め(1/4)
24
本日のユーザーストーリー作成ワークショップを開
催するにあたり、まずは各テーブルが1つのチーム
として何か新規開発を始める設定にしたいと思
います。
いきなりではありますが、参加者の皆さんで何か
作りたいものや、こういうのは面白そう。といったも
のをまずは列挙して頂き、その中から一つお題と
して採用したいと思います。
- 25. 3.共通のお題決め(2/4)
25
では幾つか事業案を出していきましょう。
やり方はブレインストーミングでやります。
1つの案につき1付箋紙で書き出します。
あまり深く考えずに思い浮かんだものを書き出します。
他の人と意見がダブっても問題ありません。
大事な事は如何に数多くの案を出すかです。
各自でやりたいと思うお題を付箋紙にペンで書き
出して下さい。まずはドンドン書いていきましょう。
時間:10分
- 26. 3.共通のお題決め(3/4)
26
グルーピング
今出して頂いた事業案を、まず同じ系統のものでまと
めてみましょう。
その中から一つ選び出しましょう。
選び方は各テーブルでお任せします。多数決だったり、
直感だったり、面白いものだったり。
但し、以降のワークショップではその選んだ事業案を
題材に行って頂きます。話題の広がりやすいものを選
んで下さい。
時間:5分
- 27. 3.共通のお題決め(4/4)
27
お題として決まった製作物の責任者を決めたいと
思います。
アジャイル開発では「プロダクトオーナー(PO)」と
呼ばれる役割の人です。
プロダクトオーナーは、通常は自社内の人間また
は顧客の代表者が担当します。プロダクトオー
ナーは製品に関する最終的な判断・意志決定
を行う権限を持ちます。
今回は時間がないので、事業案を出した人がプ
ロダクトオーナーとして進めます。
- 29. 開発の流れ
29
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 30. 4.プラグマティック・ペルソナ(1/9)
30
ここでは顧客の要求分析に関する
ワークショップを行います。
ペルソナ法では、製品のターゲット層
を絞り込む事により、プロジェクトの
目指すゴールを明確にし、且つ実
装すべき機能の絞り込みも行いま
す。
- 31. 4.プラグマティック・ペルソナ(2/9)
31
ペルソナ法とは、アラン・クーパー氏の著書『コン
ピュータは、むずかしすぎて使えない!』や『About
Face 3 - インタラクションデザインの極意』等で
紹介された要件定義の手法です。
http://www.amazon.co.jp/dp/488135826X
http://www.amazon.co.jp/dp/4048672452
製品の利用者を、仮想ユーザー『ペルソナ』とし
て厳密に設定し、そのペルソナを製品ターゲットと
して要求分析を行う方法です。
- 32. 4.プラグマティック・ペルソナ(3/9)
32
一口に製品の利用者といっても、年齢・性別
の違いや運用管理者、一般利用者といった
立場によって複数のアクターが存在します。
これらの複数のアクターについて、
それぞれについて精査を行い
そこから共通性を発見し
抽象化を行い
最も中心的となるペルソナを導出する
これにより製品の方向性を決めます。
- 33. 4.プラグマティック・ペルソナ(4/9)
33
アクターの洗い出しによって、負のペルソナと呼ば
れる価値をもたらさないアクターが見つかる事も。
ペルソナ法のフィードバックループ
1. ペルソナ法を利用して仮説を立て
2. それを元に製品開発を行い
3. 顧客に製品をデリバリーし
4. また1に戻る
このフィードバックループを繰り返す事により、製
品を作り込んだり、完成度や理解度を高めてい
き、不確実なものを確実にしていくやり方です。
- 34. 4.プラグマティック・ペルソナ(5/9)
34
プラグマティック・ペルソナ
ペルソナ法には色々なやり方がありますが、プラグマ
ティック・ペルソナは、厳密なデータ取り等は行わずに、
チームメンバーの利用者イメージを元に仮説を立てて、
短時間で検証・確認・軌道修正していくやり方です。
プラグマティック・ペルソナでは、用紙に、ペルソナの名
前、顔のイラスト、属性、行動特性(コンテキスト)、プ
ロダクトの価値を書き出して、分析を行います。
- 35. 4.プラグマティック・ペルソナ(6/9)
35
プラグマティック・ペルソナに入る前に、今回は皆さ
んが取り組み易いように、まずアクターの洗い出し
を行いたいと思います。
各テーブルで決めた事業案について、利用者・
管理者等どのようなアクターや利害関係者が関
わってくるのか、話し合って、付箋紙に書き出して
みて下さい。
時間:5分
- 36. 4.プラグマティック・ペルソナ(7/9)
36
先程選んだ事業案で実際にやってみましょう。
一番上:名前、年齢、性別
(注意事項)
左 上:顔のイラスト 名前やイラストは
おふざけ禁止です!
右 上:属性(about)
ペルソナの個人情報・特徴、選んだアクターの種別
左 下:行動特性(コンテキスト)
プロダクトをどう使うか、困り事等。
右 下:プロダクトの価値
製品にどんな価値があると嬉しいか
時間:10分
- 38. 4.プラグマティック・ペルソナ(8/9)
38
名前、年齢、性別
(注意事項)
名前や
顔のイラスト 属性 イラストは
(´・ω・`) (about) おふざけ
禁止です!
証明写真的なもの ペルソナの個人情報・特徴
行動特性
プロダクトの価値
(コンテキスト)
(売りとなるもの)
プロダクトをどう使うか
製品にどんな価値があると嬉しいか
プロダクトで解決したい困り事
- 39. 4.プラグマティック・ペルソナ(9/9)
39
出来上がったペルソナについて、テーブル内で一
人ずつ順番に紹介して下さい。
そして各テーブルで、このペルソナの為に製品を
作るというものを一人選び出して下さい。ここで
選んだペルソナが以降のワークショップでの指針・
指標となります。
製品のゴールは、ここで選んだペルソナが代弁し
ていますか?チームの意識はこのペルソナを満足
させる方向に向かって進んで行きます。
時間:10分+5分
- 41. 5.プロダクトバックログ解説(1/2)
41
顧客に価値のある製品を届ける為の作
業リストがプロダクトバックログです。
プロダクトバックログは単なるリストではな
く、機能縦断的な作業管理だったり、
作業が優先順位付けされていたり、リ
ストに入っている作業は作業規模が見
積もられていたりします。
- 42. 5.プロダクトバックログ解説(2/2)
42
プロダクトバックログとは、いわゆるToDoリスト。
単なるToDoリストと異なる点は、
プロダクトオーナーが管理する。
チームとして顧客へ価値を提供する為の製品に実装
するユーザーストーリー(後述)を集めたもの。
リスト内容のユーザーストーリーは優先順位付けされ
る。
プロダクトバックログは、要件定義の時だけ作成
するのではなく、状況に合わせて随時内容の見
直しや棚卸しを行います。
- 43. 開発の流れ
43
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 44. 5.1 ユーザーストーリー作成(1/7)
44
ユーザーストーリーは、通常インデックスカードとい
う付箋紙大のメッセージカード1枚につき1つのス
トーリーを記述して管理します。
記述例(UMLのユースケース記述と同じ)
オンラインショップの利用者として、ブラウザで商品の注
文を行いたい。
オンラインショップの利用者として、商品カートの内容
を編集したい。
- 45. 5.1 ユーザーストーリー作成(2/7)
45
ユーザーストーリー作成時の6つのポイント
INVEST(頭文字を取って)
Independent (独立性がある)
Negotiable (交渉の余地がある)
Valuable (価値がある)
Estimable (見積り可能)
Small (サイズが小さい)
Testable (テスト可能)
- 46. 5.1 ユーザーストーリー作成(3/7)
46
6つのポイントに+1で大事な事
機能縦断的(End to End)となっているか?
平鍋健二さんのブログにあった説明が分かりやすい(と
思った)ので引用します。
http://blogs.itmedia.co.jp/hiranabe/2012/09/agile-and-data-modeling.html
- 47. 5.1 ユーザーストーリー作成(4/7)
47
ピュアなアジャイルでは、機能を縦スライスで作る。UIから
DBまで、細い縦の線をつなぎ、それをユーザのフィードバッ
クを得ながら太くしていく。ぼくはこれをたとえるのに、ぼくは
水越さんが書いてくれたこのケーキをよく使う。
つまり、ケーキをつくるのに、一層目のスポンジ、二層目、
そしてクリームを塗って最後にイチゴを乗せる、という作り方
ではなく、まさに、すぐに食べられるショートケーキを縦に
作っていくのだ。
この利点は明らかで、作り終えるまでの半完成品(仕掛、
在庫)が少なく、仕様変更のインパクトが低いこと。また、
ユーザに食べさせることで、フィードバックを早期に得て、よ
り効果的な仕様を引き出せることだ。
- 48. 5.1 ユーザーストーリー作成(5/7)
48
ユーザーストーリーの記述の注意点
顧客視点で、顧客への価値を提供する内容を書く。
主語と述語をはっきり書く。誰が何をどうやってどうする
のか。
あまり細かく書かない。プロダクトバックログの時点では
不要な情報は邪魔になる。見積に必要な情報のみ
を記述する。
機能縦断的にストーリーを書く。(フィーチャー単位)
ストーリーカードの裏書きにそのストーリーのゴール・完
了条件を記述する場合もあります。
- 49. 5.1 ユーザーストーリー作成(6/7)
49
では早速、ユーザーストーリーの作成を行ってみま
しょう。
ユーザーストーリーの作成は、まずブレインストーミン
グで行います。選んだ事業案・ペルソナに向けて
実装すべきフィーチャーについて、1付箋紙に1ス
トーリーで記述を行っていきましょう。
ブレインストーミングの目的は数です。先のルール
(記述方法、6つのポイント)を守りつつ沢山の
ユーザーストーリーを書いていきましょう。
時間:5分
- 50. 5.1 ユーザーストーリー作成(7/7)
50
グルーピング
ユーザーストーリーの洗い出しが出来ましたら、次は
ユーザーストーリーのカテゴリ分けを行います。
同じ系統のストーリーに分類しましょう。
同じ内容のものは付箋紙を重ねてまとめましょう。
以上で、ユーザーストーリーの洗い出しは完了です。
時間:5分
- 51. 開発の流れ
51
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 52. 5.2 優先順位付け
52
ユーザーストーリーの洗い出しが完了したら、次
は、そのストーリー群の優先順位付けを行います。
プロダクトオーナーが中心となって、どの作業から
取り組むべきか相談し、付箋紙を上から優先順
位順に並べ替えて下さい。
並べ替えにおいて、優先順位が同列となるもの
は設定しないようにして下さい。必ず一意な順位
となるようにして下さい。
時間:3分
- 53. 開発の流れ
53
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 54. 5.3 プランニングポーカー(1/7)
54
プロダクトバックログ時点において、全体の作業
量を大まかに把握する為、そしてタイムボックスで
行う作業量の判断の為にユーザーストーリーの
作業見積を行います。
プロダクトバックログのユーザーストーリーの見積は、
プロダクトオーナーとチームメンバーで行います。
そのユーザーストーリーの知識のある人ない人を含め
て行います。
誰もが完了できるであろう属人性を排除した作
業量での見積結果の方が望ましいです。
- 55. 5.3 プランニングポーカー(2/7)
55
ユーザーストーリーの作業見積では、相対見積
で見積を行います。
相対見積を利用するのは、厳密な見積は必要
ないが、それでもある程度の精度を確保する為
です。
一般的に、見積において10倍を超える規模の
差が出ると、見積の精度が悪くなります。
- 56. 5.3 プランニングポーカー(4/7)
56
プランニングポーカーは間違ってもシャッフルしない
ようにして下さい(´・ω・`)
相対的な作業見積で利用するのがプランニング
ポーカーです。
ポーカーと名前が付いていますが、揃えるのは自
分の手札ではなく、チーム全員の出した札が同じ
値になる事が目的のワークショップです。
手札は色分けされているので、一人一色ずつ持
ちます。
- 57. 5.3 プランニングポーカー(5/7)
57
プランニングポーカーは、フィボナッチ数の値になっ
ています。1・2・3・5・8・13・20・40・・・。
それ以外に、自分の意思表示を行う目的のカー
ドがあります。
?,∞:見積もれない・判断できない
0:作業としては発生するが別計上だったり、本当に
作業量しては些細なもの。
ポーカーの値がそのままストーリーポイントです。
ポイント2に対してポイント5の作業は2.5倍の規模
の差がある事を示します。
- 58. 5.3 プランニングポーカー(6/7)
58
プランニングポーカーの進め方
1. 各ストーリーにどのようなタスクが含まれるか話し合って、
コンテキストを合わせる。
2. 中規模位(3ポイント)の基準となるストーリーを決める。
3. 次に1つストーリーを選び、それが「ストーリーポイント」
幾つになるかを各自が考えて「せーの!」でカードを出す。
4. 値が大きくズレたら、なぜそうしたかなどを両端の人に話
を聞いたり、見積の視点についてコンテキスト合わせ。
5. 全員一致するまで繰り返します。確定したストーリーポ
イントを付箋紙に記入しましょう。
実際にやってみましょう。 時間:15分
- 59. 5.3 プランニングポーカー(7/7)
59
プランニングポーカーで見積もったポイント値が
チームの開発速度の指標として使われます。
これがベロシティと呼ばれます。ベロシティは、チー
ムがあるタイムボックスで完成させたユーザース
トーリーのポイント数の合計値になります。
タイムボックスは固定なので、ストーリーポイント数
の変動によりベロシティが変動します。
ベロシティはチームのメンバーの増減によっても値
が変動する為、ベロシティでの見積はチームメン
バーの変更は行われない事が前提です。
- 60. 開発の流れ
60
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 61. 5.4 タスク分割(1/3)
61
タイムボックスの作業を始めるにあたっては、まず
プロダクトバックログから、今回のタイムボックスで
行う作業リスト(スプリントバックログ、イテレーショ
ンバックログ)を作成します。
このバックログの作成はチームメンバーで行います。
各ストーリーについてタスクを洗い出し、各タスク
について、理想日による見積(実際の作業時間
での計上)を行います。
- 62. 5.4 タスク分割(2/3)
62
タスクの作業見積でもプランニングポーカーを使ったり
します。
タイムボックス中にプロダクトオーナーは、状況を見て
プロダクトバックログの見直しを行ったりします。プロダ
クトバックログに上げたものも確定ではなく流動的な
ものです。
アジャイル開発の肝は流動的である事です。従来の
やり方では、すべき事を先に固定化する事で作業に
集中させますが、そのすべき事に変更が入ると問題
になっていました。
- 63. 5.4 タスク分割(3/3)
63
アジャイル開発で良く紹介されているタスクボード
は、このタスク作業の進捗状況を視覚化するも
のです。
タスクボードのタスクカードもユーザーストーリーの
インデックスカードと同様の記述方法を行います。
※今回は時間がないのでタスク分割の部分はワー
クショップを行いません。ご了承下さい。
- 65. 開発の流れ
65
• 共通のお題決め
• プロダクトオーナーの決定
プロジェクト
• プラグマティック・ペルソナ
の立ち上げ
• ユーザーストーリー作成
• 優先順位付け
プロダクト
バックログ作成
• ユーザーストーリーの作業見積
• ユーザーストーリーのタスク分割
• タスクの作業見積
タスク分割
- 66. 6.まとめ (1/2)
66
このワークショップでのお願い事(再掲)
職場では失敗すると大変な事になりますが、この
勉強会では失敗しても、それ程大変な事にはな
りません。どんどん失敗しましょう!
アジャイルなやり方(の一つ)を体験して頂く
普段のやり方と比較して、アジャイルなやり方の
良い所、悪い所を見つける
体験した事を職場に持ち帰る
- 67. 6.まとめ (2/2)
67
各ワークショップの目的について理解できました
か?
うまくいきましたか?それとも失敗しましたか?
普段のやり方との違いはありましたか?
職場に持ち帰れそうなものはありましたか?
一度やっただけで即実践!というのは難しいと思
います。何事も積み重ねですので少しずつやって
いきましょう。名古屋アジャイルではその場を提供
します。