ブログ

ryuzeeによるブログ記事。不定期更新

今さら聞けないストーリーポイントの基本

みなさんこんにちは。@ryuzeeです。

スクラムをはじめとしたアジャイル開発の見積りでよく使われるのがストーリーポイントです。 ストーリーポイントは研修でもよく聞かれるテーマであるとともに、誤解も多いものなので、今回基本からまとめて解説したいと思います。 なお、文脈の前提として、スクラムでの活用を想定しています。

ストーリーポイントとは?

まずは、ストーリーポイントとは何なのかを見ていきましょう。

書籍『アジャイルな見積りと計画づくり ー価値あるソフトウェアを育てる概念と技法』(Mike Cohn 著、安井力、角谷信太郎 訳、マイナビ出版、2009/1/29)の61ページから62ページにかけて、ストーリーポイントは以下のように定義されています。

ストーリーポイントとは、ユーザーストーリーやフィーチャ、その他の作業の大きさをあらわす単位である。 ストーリーポイントを使った見積りではそのような、ひとまとまりの作業に対してポイントを付ける。ポイントの数値そのものはあまり重要ではない。重要なのは、他の作業との相対値だ。2ポイントを付けられたストーリーは、1ポイントのストーリーの2倍の大きさであり、3ポイントのストーリーの3分の2の大きさとなる。 ストーリーポイントの数値は、ストーリー全体の規模をあらわす。ストーリーの規模を定義するための数式は存在しない。 ストーリーポイントによる見積りが示す値は、フィーチャを実装するのに必要な作業、開発内容の複雑さ、開発に内在するリスクなどが渾然一体となったものである。

また、書籍『More Effective Agile ー"ソフトウェアリーダー"になるための28の道標』(Steve McConnell 著、長沢 智治 監訳、クイープ 訳、日経BP、2020/6/11)の209ページでは以下のように定義されています。

ストーリーポイントは作業アイテムの大きさと複雑さの目安となる基準である。 (略)ほとんどの場合、アジャイルチームはストーリーポイントの尺度として1~13のフィボナッチ数列(1,2,3,5,8,13)を使用し、各作業アイテムのサイズをストーリーポイントで割り当てる

これらを踏まえると、ストーリーポイントとは対象の規模や大きさを表す相対的な数値であり、複雑さやリスクを踏まえたものである、と言えます。

なお、前者の定義にもあるとおり、必ずしもユーザーストーリーに特化したものではなく、対象物をポイントで見積もるというのが意味するところです。

スクラムとストーリーポイントの関係

スクラムのルールはスクラムガイドで定義されています。 中身を読んで頂くと分かりますが、スクラムガイドのなかには、ストーリーポイントという単語も、ユーザーストーリーという単語も登場しません(初版となる2010年版ではTipsのなかで「ユーザーストーリー」が登場しましたが、2011年以降はありません)。

スクラムガイド2020年版で関係しそうなところを見てみましょう。

プロダクトバックログ

プロダクトバックログは、創発的かつ順番に並べられた、プロダクトの改善に必要なものの一覧である。 これは、スクラムチームが行う作業の唯一の情報源である。

1スプリント内でスクラムチームが完成できるプロダクトバックログアイテムは、スプリントプランニングのときには選択の準備ができている。 スクラムチームは通常、リファインメントの活動を通じて、選択に必要な透明性を獲得する。 プロダクトバックログアイテムがより小さく詳細になるように、分割および定義をする活動である。 これは、説明・並び順・サイズなどの詳細を追加するための継続的な活動である。 多くの場合、属性は作業領域によって異なる。

作業を行う開発者は、その作業規模の評価に責任を持つ。開発者がトレードオフを理解して選択できるように、プロダクトオーナーが開発者を支援することもできる。

ここから分かることを確認しておくと

  • プロダクトバックログアイテムの書き方は、スクラムでは定義していない
  • 作業規模の評価の方法についても、スクラムでは定義していない

ということになります。つまり、スクラムにおいて、「ユーザーストーリー」を使うのは単なる実装の1つであり、作業規模の評価に「ストーリーポイント」を使うのも実装の1つに過ぎません。 別にユーザーストーリーでプロダクトバックログアイテムを記述しなくても構わないですし、ストーリーポイントで見積りをしなくても構いません。 プロダクトバックログアイテムの記述にユースケースを使ったり、自分たちが分かりやすい形式を作ったりしてもよいですし、見積りにTシャツサイズ見積り(S、M、L、XL)を使ってもよいわけです。

とはいえ、ストーリーポイントは便利なことも多いので、次はそれについて見ていきましょう。

ストーリーポイントの使いどころ

ストーリーポイントは計画づくりや予測、そして改善に役立ちます。 ここで新たな用語が登場します。それがベロシティです。ベロシティもスクラムガイドで定義されていない用語ですがよく使われます。

ベロシティとは、1つのスプリント(XPの場合はイテレーション)のなかで完成したアイテムのストーリーポイントを合計したものです。 たとえば、5ポイント、3ポイント、2ポイントのアイテムが完成した場合は、ベロシティは10ポイントになります。

ベロシティが分かれば、計画のときにその値を参考にして計画を立てたり、将来を予測したり、改善に役立てたりすることができるようになります。

スプリントプランニングに活用する

前回のスプリントでのベロシティが10であれば、今回のスプリントで完成できる量も10ポイント程度ではないかと予測できます。 これによって、完成できないようなたくさんのプロダクトバックログアイテムをスプリントプランニングで議論・計画したり、スプリントに投入したりするのを防ぐことができます。

また過去のスプリントのベロシティがあれば、さらに予測の精度は上がります。 たとえば、過去3スプリントのベロシティが、10ポイント、14ポイント、12ポイントの順に安定的に推移していた場合、おおよそ12ポイント程度の完成は確度が高いと考えられるようになります。

一方で過去のベロシティの推移が、10ポイント、0ポイント、20ポイントのように乱高下している場合は、数字のばらつきが大きいため、必ずしも予測の精度は高くならず、チームがなんらかの問題を抱えていることを示唆している可能性もあるので注意が必要です。

中長期的な予測に活用する

ベロシティはスプリントプランニングだけでなく、中長期的な予測にも活用できます。 主に以下のように使います。

  • 残りのスプリント回数がおおよそ決まっているときに、どこまで達成できそうかを予測する
  • 実現する必要があるプロダクトバックログアイテムが決まっているときに、何スプリントかかりそうかを予測する

前者については、「残りスプリント数 * 直近のベロシティの平均値 = 残り期間で完成できそうな量」となり、 後者については、「実現する必要があるプロダクトバックログアイテムのストーリーポイントの合計 ÷ 直近のベロシティの平均値 = 必要なスプリント数の概算」となります。

これらはあくまで概算ですが、同じチームで開発している期間が長くて、ベロシティが安定しているようであれば、それなりに精度は高くなります。 一方で、新しいチームを作ったばかりの状況などで、ベロシティが乱高下しているような状況であれば、精度は低くなります。 つまり、チームが成長し安定するにつれて予測の精度は高くなるものであり、最初から正確な予測をすることは不可能です。

ステークホルダーに見通しを伝えるときは、一度きりではなく頻繁に伝えましょう。たとえばスプリントレビューで毎回見通しを伝えるのもよいでしょう。

改善のために活用する

スプリントレトロスペクティブの場などで、ベロシティやストーリーポイントのデータを使って改善点を探すこともできます。 いくつか例を挙げましょう。

  • ベロシティが乱高下している場合、その理由を深掘りする
    • 上述のとおり、ベロシティが乱高下していると予測の役に立ちません。乱高下している理由を明らかにして改善していきます
    • ありがちなのが、毎スプリントで着手したものの完成しなかったプロダクトバックログアイテムが多数あり、それを後続のスプリントで完成まで持っていくといった良くないやり方をしていることです
    • これはプロダクトバックログのリファイン(具体化、分割、その他準備)が十分でない可能性や、スクラムの理解不足の可能性を示唆しています
  • ベロシティが緩やかに下がっていたり、以前と比べて低くなったりしている場合、その理由を深掘りする
    • 同一のストーリーポイントのアイテムは、おおよそ似たような作業量になるはずにも関わらず、以前よりもベロシティが下がっている場合、なんらかの問題があるかもしれません
    • たとえば、コードベースが複雑になってしまい、以前より簡単に作業できなくなったとか、テストが手動のためにテストの工数のインパクトが大きくなってしまったといったものです
    • ほかにもさまざまな理由が考えられますが、放置してもよくならないので、根本原因を見つけて対処していきます
  • あるストーリーポイントを超える規模のアイテムが完成しないことが多い場合は、自分たちの扱えるサイズに分割すべきサインだと考える

これらはあくまで一例なので、チームで議論してみるとよいでしょう。 なお、このとき、ベロシティやストーリーポイントの数字だけを見て一喜一憂するのは無意味です(「前のスプリントよりも1ポイント上がった!バンザイ!」のようなものは無意味です)。 ストーリーポイントは、あくまで概数であり誤差はあります。検討の材料の1つとして傾向をとらえるようにしましょう。

よくある質問

ここまでストーリーポイントの概要について見てきましたが、ここからはありがちな質問を取り上げます。

他のチームとストーリーポイントやベロシティを比較できますか?

一部の例外を除いてできませんし、比較しても無意味です。 スクラムチームの外側にいるマネージャーやなんとか管理部門の人たちが、ベロシティを比較したいと言ってきたら全力で止めましょう。 異なるプロダクト同士では、そもそもストーリーポイント1ポイントが示すサイズ自体が違います。 あるチームの1ポイントが、他のチームの2ポイントくらいに相当することもあるでしょう。あくまで相対的な値なので単純比較はできません。

唯一の例外は、同一プロダクトで同じプロダクトバックログを元に作業するチームが複数存在する場合です。 この場合は、ストーリーポイント1ポイントが示すものは、チームを横断して共通になるので、比較はできます。 ただし、比較してどうしたいの?という点が明確になっていなければ無意味です。

ベロシティの目標値を設定する是非について教えてください

目標値を設定したところで、チームの能力が劇的に上がるわけではありませんし、ベロシティが上がるわけでもありません。つまり無意味です。 たとえば、厳しい予算や期間があるプロダクトにおいて、一定の範囲を終わらせるには、最低でも1スプリントあたりのベロシティが30ポイント必要だ、みたいな計算をすることはないわけではありません。 ただ、それを達成できるかどうかはやってみないと分かりません。 数スプリントやってみて、実際のベロシティの平均が10ポイントだということが分かれば、その時点で別の対処をしなければいけません。

それでも目標ベロシティの達成を要求するとどうなるかというと、見積りのときに大きく見積もるだけです。 ベロシティを倍にするいちばん簡単な方法は、すべてのストーリーポイントを2倍にすることです。もちろん無意味ですが。

開発する人が違えば見積りは変わると思うんですが?

ストーリーポイントの定義をもう一度確認しましょう。相対的な規模感を表すものであり、それは開発する人によって変わるものではありません。 開発する人によって変わるのは、実際の所要時間です。

この質問をしているということは、プロダクトバックログアイテムを先に個人に割り当てて、割り当てられた個人単位で見積もっているのではないでしょうか? そのようなやり方はよくありません。 リーンの原則に従うと、同時の仕掛かりをなるべく少なくして、すばやく完成させていくことが重要ですが、プロダクトバックログアイテム単位で分業してしまうと、完成しないリスクがとても高くなります。 プロダクトバックログアイテムは開発者全員で見積もりましょう。

初期の段階でいつリリースできるかを予測するのにストーリーポイントは使えますか?

使えなくはないですが、正確ではないので、随時リリース予測のアップデートが必要です。 いくつかの要因があります。

  • 初期の段階のプロダクトバックログはそもそも精度が低い
    • プロダクトバックログは開発期間中ずっと変わり続けます。初期の段階のプロダクトバックログはかなり精度が低く、不要なものがたくさん混じっていると考えるのが妥当です
  • 初期の段階の見積りもそもそも精度が低い
    • プロダクトバックログに含まれる全量を把握するために見積りをしても、まだ内容に対する理解も不十分だったり、プロダクトバックログアイテムに対する共通理解がない状態だったりすれば、見積りもほぼ適当です
  • 初期の段階ではベロシティが分からない
    • 同じチームでずっと仕事をしていて、過去のプロダクトでの見積りを基準にして今回のプロダクトを見積もった、という場合以外は、ベロシティは分かりません

これらを踏まえると、初期の段階での予測はいまある材料を使った「適当な予測」ということになります。 適当な予測がまったく役に立たないわけではありませんが、これが約束として扱われる状況であれば極めて危険です。 時間が経つにつれて精度が上がっていきますので、見通しは何度もアップデートしてください。


それでは。

アジャイルコーチングやトレーニングを提供しています

株式会社アトラクタでは、アジャイル開発に取り組むチーム向けのコーチングや、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください。

詳細はこちら
  • スクラム実践者が知るべき97のこと
  • 著者/訳者:Gunther Verheyen / 吉羽龍太郎 原田騎郎 永瀬美穂
  • 出版社:オライリージャパン(2021-03-23)
  • 定価:¥ 2,640
  • スクラムはアジャイル開発のフレームワークですが、その実装は組織やチームのレベルに応じてさまざまです。本書はスクラムの実践において、さまざまな課題に対処してきた実践者が自らの経験や考え方を語るエッセイ集です。日本語書き下ろしコラムを追加で10本収録
  • プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける
  • 著者/訳者:Melissa Perri / 吉羽龍太郎
  • 出版社:オライリージャパン(2020-10-26)
  • 定価:¥ 2,640
  • プロダクト開発を作った機能の数やベロシティなどのアウトプットで計測すると、ビルドトラップと呼ばれる失敗に繋がります。本書ではいかにしてビルドトラップを避けて顧客に価値を届けるかを解説しています。
  • SCRUM BOOT CAMP THE BOOK 【増補改訂版】
  • 著者/訳者:西村直人 永瀬美穂 吉羽龍太郎
  • 出版社:翔泳社(2020-05-20)
  • 定価:¥ 2,640
  • スクラム初心者に向けて基本的な考え方の解説から始まり、プロジェクトでの実際の進め方やよく起こる問題への対応法まで幅広く解説。マンガと文章のセットでスクラムを短期間で理解できます。スクラムの概要を正しく理解したい人、もう一度おさらいしたい人にオススメ。
  • みんなでアジャイル ―変化に対応できる顧客中心組織のつくりかた
  • 著者/訳者:Matt LeMay / 吉羽龍太郎、永瀬美穂、原田騎郎、有野雅士
  • 出版社:オライリージャパン(2020-3-19)
  • 定価:¥ 2,640
  • アジャイルで本当の意味での成果を出すには、開発チームだけでアジャイルに取り組むのではなく、組織全体がアジャイルになる必要があります。本書にはどうやってそれを実現するかのヒントが満載です
  • レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス
  • 著者/訳者:David Scott Bernstein / 吉羽龍太郎、永瀬美穂、原田騎郎、有野雅士
  • 出版社:オライリージャパン( 2019-9-18 )
  • 定価:¥ 3,132
  • レガシーコードになってから慌てるのではなく、日々レガシーコードを作らないようにするにはどうするか。その観点で、主にエクストリームプログラミングに由来する9つのプラクティスとその背後にある原則をわかりやすく説明しています。
  • Effective DevOps ―4本柱による持続可能な組織文化の育て方
  • 著者/訳者:Jennifer Davis、Ryn Daniels / 吉羽 龍太郎、長尾高弘
  • 出版社:オライリージャパン( 2018-3-24 )
  • 定価:¥ 3,888
  • 主にDevOpsの文化的な事柄に着目し、異なるゴールを持つチームが親和性を高め、矛盾する目標のバランスを取りながら最大限の力を発揮する方法を解説します
  • ジョイ・インク 役職も部署もない全員主役のマネジメント
  • 著者/訳者:リチャード・シェリダン / 原田騎郎, 安井力, 吉羽龍太郎, 永瀬美穂, 川口恭伸
  • 出版社:翔泳社( 2016-12-20 )
  • 定価:¥ 1,944
  • 米国で何度も働きやすい職場として表彰を受けているメンローの創業者かつCEOであるリチャード・シェリダン氏が、職場に喜びをもたらす知恵や経営手法、より良い製品の作り方などを惜しみなく紹介しています
  • アジャイルコーチの道具箱 – 見える化の実例集
  • 著者/訳者:Jimmy Janlén / 原田騎郎, 吉羽龍太郎, 川口恭伸, 高江洲睦, 佐藤竜也
  • 出版社:Leanpub( 2016-04-12 )
  • 定価:$14.99
  • この本は、チームの協調とコミュニケーションを改善したり、行動を変えるための見える化の実例を集めたものです。96個(+2)の見える化の方法をそれぞれ1ページでイラストとともに解説しています。アジャイル開発かどうかに関係なくすぐに使えるカタログ集です
  • カンバン仕事術 ―チームではじめる見える化と改善
  • 著者/訳者:原田騎郎 安井力 吉羽龍太郎 角征典 高木正弘
  • 出版社:オライリージャパン( 2016-03-25 )
  • 定価:¥ 2,138
  • チームの仕事や課題を見える化する手法「カンバン」について、その導入から実践までを図とともにわかりやすく解説した書籍。カンバンの原則などの入門的な事柄から、サービスクラス、プロセスの改善など、一歩進んだ応用的な話題までを網羅的に解説します。
  • Software in 30 Days スクラムによるアジャイルな組織変革“成功"ガイド
  • 著者/訳者:Ken Schwaber、Jeff Sutherland著、角征典、吉羽龍太郎、原田騎郎、川口恭伸訳
  • 出版社:アスキー・メディアワークス( 2013-03-08 )
  • 定価:¥ 1,680
  • スクラムの父であるジェフ・サザーランドとケン・シュエイバーによる著者の日本語版。ビジネス層、マネジメント層向けにソフトウェア開発プロセス変革の必要性やアジャイル型開発プロセスの優位性について説明
  • How to Change the World 〜チェンジ・マネジメント3.0〜
  • 著者/訳者:Jurgen Appelo, 前川哲次(翻訳), 川口恭伸(翻訳), 吉羽龍太郎(翻訳)
  • 出版社:達人出版会
  • 定価:500円
  • どうすれば自分たちの組織を変えられるだろう?それには、組織に変革を起こすチェンジ・マネジメントを学習することだ。アジャイルな組織でのマネージャーの役割を説いた『Management 3.0』の著者がコンパクトにまとめた変化のためのガイドブック