Sim

2023.10.06

間違ったストーリーポイントの見積をしないためには

はじめに

アジャイル(スクラム)開発を6年ほど経験しウォーターフォールよりアジャイル開発が断然良いだろうと思っているSimです。
ただ、悲しいことにアジャイル開発をして「炎上した!」「全然良くない!」「計画通り進まない」という声も耳にする時があります。

おそらくそのような意見は、間違った独自手法を取り入れているのではないかなーと思うので、失敗しないスクラム開発ができるようにまとめていきたいと思います。

 

ストーリーポイントとは

スクラム開発では、ある特定の課題やタスクの相対的な難易度を推定するためにストーリーポイントが使用されます。ストーリーポイントはタスクの複雑さ、労力、リスク、不確実性などを予測する尺度で、時間ではなく、作業の「サイズ」を評価します。

ストーリーポイントの評価は専門スキルや経験を持つ開発者たちが行い、多くの場合でプランニングポーカーと呼ばれるゲーム形式で行われます。これにより、全員が一致した見積もりを出すことができ、チーム全体でのコンセンサスを築くことが可能となります。

ストーリーポイントは作業量の見積もりをより正確にし、プロジェクトのスケジューリングとリソース管理を効果的に行うための有用なツールとなります。

ちなみに、ポイントは1,2,3,5,8,13,21…とつけるフィボナッチ数列を使うのが一般的です。

 

なぜストーリーポイントは時間で考えてはいけないのか

よくストリーポイントでポイントを出す時に「ポイントは時間で見れば良くないですか?」と耳にする時があります。
これは、自分の視点だけで見積もってしまう危険性を示しています。
では、具体的な例を使って考えてみましょう。

例1

ランニングの距離を時間で見積もるとどうなるでしょうか?
基準設定で10分を1ポイントと設定しました。

・Aさんは「この距離なら30分で走れる」と考えてポイント3を付けました。
・Bさんは「この距離を走るのに50分ぐらいかかるだろう」と考えて5ポイントを付けました。

AさんはBさんより速く走れるし、体力に自信があるのでしょう。
逆にBさんはAさんより遅く、体力にも自信がないのでしょう。
どちらも時間から見た場合には正しい見積もりなので、どちらかに決めるしかありません。

 

例2

例1の基準設定で、以下の状況になったと考えてみましょう?

・Aさんは「この距離は30分で走れるけど、勾配の急な上り坂があることを知っているので、50分ぐらいかかるだろう」と考え、5ポイントを付けました
・Bさんは「この距離を走るのに50分ぐらいかかるだろう」と考え、同じく5ポイントを付けました。

このケースでのBさんは地形に詳しくなく、勾配が急な上り坂があることを知りません。
それにもかかわらず、見積もりが同じポイントになってしまったため、議論なしに5ポイントと決まってしまいます。

例1、例2ともにAさんの意見が通っていたら、いざBさんが走ってみると思った以上に時間がかかったと思うはずです。

 

ストーリーポイントは相対で行う

前述でストーリーポイントを時間で見積もった場合の危険性を紹介しましたが、ではどうすればよいか?
これは相対でポイント見積りすることで解消できます。
こちらも、具体的な例を使って考えてみましょう。

例1

ランニングの距離を相対で見積もるとどうなるでしょうか?

これを基準設定でを1ポイントと設定しました。

以下は何ポイントでしょう?

・Aさんは「基準の3倍に見えるな」と考えて3ポイントをつけました。
・Bさんは「基準の3.5倍くらいかな。でも4がないから3かな」と考えて3ポイントを付けました。

自分の体力とは関係なく純粋な相対見積ができるようになります。

例2

例1のケースでBさんが勾配が急な上り坂があることを知っていたらどうでしょう。

・Aさんは「基準の3倍に見えるな」と考えて3ポイントをつけました。
・Bさんは「基準の3.5倍くらいかな。でも勾配が急な上り坂があるから5かな」と考えて5ポイントを付けました。

時間で見積もった時とは違い、なぜ5ポイントなったのかをBさんに確認し「勾配が急な上り坂がある」ことをAさんは話し合いで気づくことができます。

 

このように時間で見積もった時より相対で見積もった時の方が純粋な作業のボリュームやリスクを会話で把握することができるのです。
Bさんが実際に走っても、思っていた以上に時間がかかるとは思わなくなるはずです。

 

ベロシティは個人ではなくチーム

ポイント消化スピードは個人ではなくチームとしてみる必要があります。
メンバーの入れ替わりがあれば、ベロシティもリセットされると考えましょう。
それは時間での危険性に触れたように個人差があるからです。

例えば体力があるAさんは1ポイントの距離を走るのに30分かかるがBさんは倍の60分かかるとします。
つまりAさんとBさんが同じチームであれば60分で走れる距離は3ポイントということになります。

しかしメンバーが入れ替わりAさんが抜けてBさんと同じくらいの体力のCさんが入ってきたらどうでしょうか。

もしCさんがBさんと同じ体力なので60分で走れる距離は2ポイントとなり、
もともと計画していた60分で3ポイントが気付いた時にはもう手遅れとなります。

 

まとめ

いかがだったでしょうか?
スクラム開発をしていてポイント消化が安定しないなと思っているチームがあれば一度、見積方法・計画を再度見直してみては如何でしょか?

勘違いしないでほしいのが時間を考えてはいけないということではありません。
ただ自分の基準時間を相手に強要しなないでほしいのです。
自分が相対で見るときに時間が必要な尺度であればで時間で考えて良いですが、それを表に出して相手に伝えないことが大切なのだと思います。