ストーリーポイントによる見積もり

はじめに

こんにちは。テクノロジー本部の山田です。エンジニアとして新卒で入社し今年で2年目になります。
弊社ではスクラム開発が推奨されており、社内向けにアジャイルコーチの雨宮さんによってアジャイルトレーニングが行われています。自分もそのトレーニングに参加させていただき、アジャイルやスクラムについて体系的に学ぶ機会をいただきました。
この記事では、そこで学んだことの中で自分が特に気になったストーリーポイントを使った見積もりについてまとめています。

ストーリーポイントとは

アジャイルの見積もりでは、ストーリーポイントという単位を使います。
これは、ユーザーストーリーの相対的な開発規模を表す値で、そのストーリーを実現するチームでストーリーポイントを算出することがアジャイルでの見積もりになります。 「1,2,3,5,8,13,…」のようにフィボナッチ数列の中から選ぶことが多いようです。
ストーリーポイントは特定のチームの特定のコンテキストで決まってくるため、あるチームでは3ポイントのユーザーストーリーでも他のチームでは5ポイントということが起きる可能性があります。
チーム間での比較や共通化は基本的にできないということに注意が必要です。

なぜストーリーポイントで見積もるのか

見積もりでは、人日のように時間単位で見積もることが多いと思いますし、直感的にもイメージしやすいと思います。 しかし、時間で見積もった場合、見積もる人の経験やスキルによって大きく差が出てしまいます。
例えば、皇居2周(10km)は何分で走れるかと聞くと、
Aさん:普段走り慣れているので1時間でいける。
Bさん:普段あまり運動していないので2時間かかる。
というように、人によってまちまちな時間になってしまいます。
時間のような絶対的な基準だと人によって答えが変わってしまうのです。
一方、皇居1周よりどれくらい規模が大きいかと聞かれると、多くの人が2倍くらいだと答えるでしょう。
このように、「相対的な規模」で測ると合意しやすくなるので、ストーリーポイントという架空の単位を使って「相対的な規模」を見積もります。 このような見積もりを「相対見積もり」といいます。

見積もりの流れ

ストーリーポイントを使う理由がわかったところで、次はストーリーポイントを使って見積もる方法について説明します。

1. 基準の合意

まずストーリーポイントの基準を決めます。 最初に規模感として軽めのPBI(プロダクトバックログアイテム)を3ポイントとして決めると良いでしょう。
見積もりでは、この3ポイントと比べて大きいか小さいかで判断して大きさを決めることができます。 慣れてきたら1ポイントや5ポイントの基準も作ってみるとより見積もりやすくなります。

自分のチームでは、基準となるPBIを決めて以下のような規模が変わりうる観点を洗い出し、それらを考慮して比較するようにしています。

  • APIは新規で作るのか修正のみか
  • リファクタリングが必要か
  • テストのボリュームはどれくらいか
  • 専門知識は必要か

2. 見積もりの実施

基準の合意が取れたら、次にユーザーストーリーを見積もります。 その時によく使われる手法にプランニングポーカーというものがあります。 ストーリーポイントの候補の数字が書かれたカードを使って見積もる方法です。

f:id:mti-techblog-writer:20210826174100j:plain
プランニングポーカーのカード
引用元: Planning poker - Wikipedia

以下のように実施します。

  1. 作業を行う開発メンバーを集め、全員にカードをわたす
  2. 見積もるユーザーストーリーの内容について認識を合わせる
  3. 各自でポイントを見積もり、該当するポイントのカードを一斉に出す
  4. 全員のカードの数字が一致したらその数値がユーザーストーリーのポイントとして決まる
    異なるならそれぞれの見積もりの根拠を聞いて、再度3から繰り返す
  5. 決まったポイントが大きすぎれば(例えば13ポイント以上なら)、ストーリーを分割して再度見積もる

4の見積もりの根拠を聞くというのが特に重要で、「テストデータの用意に時間がかかりそう」「〇〇を使えば簡単にできる」など一人で考えた時には漏れていた懸念事項や手法を洗い出すことができます。
これを繰り返すことで全員がある程度納得でき、適切な見積もりを出すことができるという仕組みです。

5のストーリーの分割については別記事で紹介されているので、よければこちらもご覧ください。 tech.mti.co.jp

また、物理的なカードを用意し実際に集まって行うのではなく、オンラインでプランニングポーカーができるサービスもいくつかあるのでそれを使ってみるといいかもしれません。 自分のチームでは、タスク管理に使っているAzure DevOpsの一機能としてプランニングポーカーがあったのでそれを使っていました。

プランニングポーカーのように数字で直接見積もるのが難しいなら、服のサイズのようにS, M, L, XLと4段階くらいに分けて見積もり、その後でSなら2ポイント、Mなら5ポイント…のように数値に変換してストーリーポイントを出す方法もあるようです。

さいごに

ここまでストーリーポイントによる見積もりについてご説明しました。
自分もつい規模ではなく時間で見積もってしまっていたりしてまだ完全に習得できているとはいえないのですが、今後も学んだことを実践し、さらに理解を深めていこうと思います。
初めてのブログ投稿で拙いところもあったかと思いますが、最後まで読んで頂きありがとうございました。