SlideShare a Scribd company logo
1 of 19
Download to read offline
1
2014年5月21日
GMOインターネット株式会社
次世代システム研究室
藤村 新
AEP読書会
第十二章
ユーザーストーリーの分割
どんなに優先順位が高か
ろうと、ユーザーストーリー
の大きさが1回のイテレー
ションでは完了できないの
であれば、2つ以上に分
割せざるを得ない。
1.ユーザーストーリーをいつ分割するのか
ストーリーが大きすぎて1回のイテレーションに
は収まらないような場合
いま計画を立てている次のイテレーションには
もう他のストーリーが入っていて、そのストーリー
を入れる余地がない
一部なら実装できるが、すべては無理
大きなストーリー(エピック)を分割するのは、よ
り正確な見積りが必要な場合に有用
2.データ境界に沿って分割する
例1)ユーザーとして、バランスシートの情報を入力できる
ユーザーとして、バランスシートのデータをサマリで入力できる
入力項目は、資産、負債の2つ
ユーザーとして、バランスシートのカテゴリごとの入力ができる
現金預金、投資有価証券、不動産、短期貸付金など
ユーザーとして、入力を間違えないような入力値のバリデーションが欲
しい
負の値も入力できる、入力値の端数は自動的に四捨五入して丸
める
ユーザーとして、貸付金の詳細を入力できる
このストーリーで扱う詳細情報が貸付金に限定されているため小
さくなった
他のストーリーの雛形として使うことができた
2.データ境界に沿って分割する
例2)自動FAXシステム
システムの設定を変更可能にする
米国内の電話番号と国際電話番号とにストーリーを分割
例3)ローンの返済を処理するシステム
借主として、ローンを返済したい
借主が誤って返済額以上の小切手を送ってしまったらどうするの
か?
払い戻し小切手を借主に郵送しなければならない
この対応は返金額が¤2以上の場合に限られる
借主として、ローンを返済したい。このとき、払い過ぎてもかまわな
い。
借主として、もし返済し過ぎてしまったら、 ¤2以上の場合に限り、
払い戻しできる。
3.操作の境界で分割する
例1)きわめて複雑な検索画面
画面の上半分には数十個の入力項目
中央には入力内容を元にデータベースへのクエリを構築できるク
エリビルダ
その下には複雑なデータ表示用グリッド
3つに分割
1. 基本的なユーザーインターフェイス
 検索条件の半分を扱う
 クエリビルダ
 検索結果数だけを表示
2. データ表示用のグリッド
 開発にかかる時間が読めなかったため2番目にした
3. 残りの検索条件を入力する項目
3.操作の境界で分割する
例1)コーチとして、チームの選手を管理できる(SwimStats)
CRUD(Create, Read, Update, Delete)操作を境界として分割
 コーチとして、新しい選手をチームに追加できる
 コーチとして、チームの選手の情報を編集できる
 コーチとして、チームから抜けた選手を削除できる
4.横断的な関心事を分離する
例1)データを検索して、その結果を表示する
表示する結果はそのユーザーに閲覧が許可されているデータに限定し
なければならない
表示する検索結果の制約を無視する
最初のイテレーションでは、ユーザーはすべての検索結果を見
ることができる
例2)ユーザーとして、システムを利用したければユーザー名と
パスワードを入力してログインしなければならない
セキュアでないログインとセキュアなログインの2つのストーリーに分離
横断的な機能の別のストーリーへの分離を検討すること。
その場合、横断的な機能を含まないストーリーと、含むストー
リーの2つに分けること。
5.パフォーマンス制約をストーリーにする
「動くようになってから、速く動かすことを考えろ」(カーニハン
&プローガー)
例)株価をグラフ表示させる
満足条件
的確な折れ線グラフ表示
データが存在しない場合の対応
パフォーマンス
パフォーマンスのためのキャッシュ機能は欠かせない要素
別の新規ユーザーストーリーにして、次のイテレーションで開発する
大きなストーリーの機能要求と非機能要求とをそれぞれ個別
のストーリーに分割することを検討せよ。
6.優先度に沿ってストーリーを分割する
例)ユーザーとして、システムにログインしなければならない
満足条件
ユーザーが正しいユーザー名とパスワードを入力した場合に限り、
アクセスを許可する
ユーザーが間違ったパスワードを3回連続して入力するとログインで
きなくなる。ログイン制限を解除するにはカスタマサービスに連絡しな
ければならない
ユーザーがログイン制限されたら、そのユーザーに対して、そのアカ
ウントを使ってログインしようとした形跡があったことを知らせるメー
ルが送信される
大きなストーリーを分割する場合には、サブストーリーの優先
度に沿って分割すること。
7.ストーリーをタスクに分解してはならない
悪い例)
ユーザーインターフェイスを実装する
中間層を実装する
システムを「曳光弾」で照らす。(ハント&トーマス)
「曳光弾」とは、あるフィーチャに必要なシステムの論理層すべ
てをまたいで実装することを指す。
大きなストーリーをタスクに分解するのではなく、ストーリーを曳
光弾にするための作戦を考えること。
8.関連する変更への誘惑を断つ
ストーリーを適切な大きさへと首尾よく分割できたとしても、そ
こに作業を追加してしまえば、分割した意味がなくなる
「ついでにこの変更もやれるじゃないか」
他のフィーチャと同様に優先順位を付けなければならない
適切なサイズに分割したストーリーに、関連する変更を上乗せし
てはならない。
ただし、関連する変更の優先度が同じ場合はこの限りではない。
9.ストーリーをまとめる
あらゆるストーリーを最初からなるべく小さくしておきたくな
るかもしれないが、ガイドラインの狙いはそうではない。
イテレーション期間:2週間
2日から5日で完了できる大きさにストーリーを分割する
のが適切
イテレーション期間:1週間
ストーリーはもう少し小さく分割した方が良い
イテレーション期間:2週間以上
イテレーション期間2週間同様、2日から5日が適切
1つにまとめたストーリーは、個別の小さな見積りを足し合わせる
のではなく、全体を1つの数値で見積もる。(バグレポートなど)
話し合ってみよう
1. 現在の、または最近のプロ
ジェクトで、分割するのが
難しかったストーリーは?こ
の章を読んだ後なら、どう
やって分割するだろうか?
個人的回答
パスドラクローンのパズル部分
のストーリー。
「3.操作の境界で分割する」を
参考に、ページ上部のエフェクト
部分、ページ下部のパズル部分
等に分割した。
話し合ってみよう
2. ストーリーをタスクに分
解して、そのタスクを
ユーザーストーリーのよう
に扱うと、どのような問
題が起きそうだろうか?
個人的回答
計画の基準がフィーチャではなく
タスクになってしまい、プロダクトを
正しい視点で捉えられなくなる。
その結果、ユーザーに直接価値を
提供することができなくなる。
19
おわり

More Related Content

What's hot

SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)Yoshitaka Kawashima
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019Tokoroten Nakayama
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドHiroyuki Ito
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 
カネとAgile(大企業新規事業編) #rsgt2021
カネとAgile(大企業新規事業編) #rsgt2021カネとAgile(大企業新規事業編) #rsgt2021
カネとAgile(大企業新規事業編) #rsgt2021Itsuki Kuroda
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。toshihiro ichitani
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道nishio
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)Yasuharu Nishi
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』Yoshitaka Kawashima
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 

What's hot (20)

SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
はじめてのPRD
はじめてのPRDはじめてのPRD
はじめてのPRD
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイドアジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
カネとAgile(大企業新規事業編) #rsgt2021
カネとAgile(大企業新規事業編) #rsgt2021カネとAgile(大企業新規事業編) #rsgt2021
カネとAgile(大企業新規事業編) #rsgt2021
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 

More from Arata Fujimura

クラスメソッドベトナム設立しました
クラスメソッドベトナム設立しましたクラスメソッドベトナム設立しました
クラスメソッドベトナム設立しましたArata Fujimura
 
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組みリーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組みArata Fujimura
 
DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道Arata Fujimura
 
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜Arata Fujimura
 
スクラムマスター募集中
スクラムマスター募集中スクラムマスター募集中
スクラムマスター募集中Arata Fujimura
 
変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとは変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとはArata Fujimura
 
クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影Arata Fujimura
 
モダンオフショア開発のすすめ
モダンオフショア開発のすすめモダンオフショア開発のすすめ
モダンオフショア開発のすすめArata Fujimura
 
スクラムワークショップ
スクラムワークショップスクラムワークショップ
スクラムワークショップArata Fujimura
 
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話Arata Fujimura
 
登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜Arata Fujimura
 
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!Arata Fujimura
 
PdMワークショップ
PdMワークショップPdMワークショップ
PdMワークショップArata Fujimura
 
最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話Arata Fujimura
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!Arata Fujimura
 
Experience DevOps Implementation Support Service
Experience DevOps Implementation Support ServiceExperience DevOps Implementation Support Service
Experience DevOps Implementation Support ServiceArata Fujimura
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!Arata Fujimura
 
俺のレアジョブ利用法
俺のレアジョブ利用法俺のレアジョブ利用法
俺のレアジョブ利用法Arata Fujimura
 
DevOps導入支援、始めました
DevOps導入支援、始めましたDevOps導入支援、始めました
DevOps導入支援、始めましたArata Fujimura
 
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発Arata Fujimura
 

More from Arata Fujimura (20)

クラスメソッドベトナム設立しました
クラスメソッドベトナム設立しましたクラスメソッドベトナム設立しました
クラスメソッドベトナム設立しました
 
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組みリーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
 
DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道
 
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
 
スクラムマスター募集中
スクラムマスター募集中スクラムマスター募集中
スクラムマスター募集中
 
変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとは変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとは
 
クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影
 
モダンオフショア開発のすすめ
モダンオフショア開発のすすめモダンオフショア開発のすすめ
モダンオフショア開発のすすめ
 
スクラムワークショップ
スクラムワークショップスクラムワークショップ
スクラムワークショップ
 
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
 
登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜
 
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
 
PdMワークショップ
PdMワークショップPdMワークショップ
PdMワークショップ
 
最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
 
Experience DevOps Implementation Support Service
Experience DevOps Implementation Support ServiceExperience DevOps Implementation Support Service
Experience DevOps Implementation Support Service
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
 
俺のレアジョブ利用法
俺のレアジョブ利用法俺のレアジョブ利用法
俺のレアジョブ利用法
 
DevOps導入支援、始めました
DevOps導入支援、始めましたDevOps導入支援、始めました
DevOps導入支援、始めました
 
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発
 

ユーザーストーリーの分割