見積もりの技法
プランニングポーカーやストーリーポイントなど、開発工数を見積もる代表的な手法と精度を高めるコツを学ぶ
見積もりはなぜ難しいのか
ソフトウェア開発の見積もりは、プロジェクトの初期ほど不確実性が高く、 正確な人日を出すことが原理的に困難です。この不確実性は開発が進むにつれて 徐々に小さくなっていく、という考え方は「不確実性コーン」と呼ばれます。
そのため見積もりの目的は「完璧な正確さ」を追求することではなく、優先順位付けや計画に使える程度の精度を、 チームの合意のもとで素早く出すことにあります。
ストーリーポイントと相対見積もり
ストーリーポイントは、時間ではなく 「他のタスクと比べてどのくらい大きい・複雑か」という相対的な大きさを表す指標です。 人によって作業速度が異なるため、絶対的な時間よりも相対比較の方が見積もりが安定しやすいとされています。
相対見積もり(ストーリーポイント)
- • 「Aの2倍の大きさ」のような相対比較で見積もる
- • 個人差の影響を受けにくい
- • チームのベロシティ(1スプリントで消化できるポイント)と組み合わせて計画に使う
絶対見積もり(人日・時間)
- • 「3人日」のように具体的な時間で見積もる
- • 契約や外部への報告で必要になる場合がある
- • 担当者のスキル差や割り込み作業の影響を受けやすい
プランニングポーカー
プランニングポーカーは、 チーム全員が同時にカードでポイントを提示することで、声の大きい人の意見に 引っ張られずに見積もりを出す手法です。フィボナッチ数列に近い数字 (1, 2, 3, 5, 8, 13...)がよく使われます。
ストーリーを読み上げ、質疑応答する
受け入れ基準を確認し、不明点を解消する
全員が同時にカードを出す
他人の数字を見てから出すのを防ぎ、独立した見積もりを引き出す
意見が割れたら議論する
最大値・最小値を出した人がその理由を説明し、認識のズレを解消する
再度見積もり、合意する
議論を経て再投票し、チームとしての見積もりを確定する
ポイント
プランニングポーカーの目的は正確な数字を当てることではなく、見積もりの過程で認識のズレを発見し解消することにあります。 数字がバラつくこと自体が、隠れた前提の違いに気づく貴重な機会です。
見積もり精度を上げるコツ
過去の実績データを活用する
過去に完了したストーリーのポイントと実際の消化スピード(ベロシティ)を参考にする
不確実性の高い部分はスパイクで検証する
見積もり前に短期間の技術調査(スパイク)を行い、不確実性を減らしてから本見積もりする
ストーリーを適切な大きさに分割する
大きすぎるストーリーは見積もり誤差も大きくなるため、小さく分割してから見積もる
計画にバッファを持たせる
見積もり自体を水増しするのではなく、計画段階で割り込み対応等の余地を確保する
ポイント
- • プロジェクト初期は不確実性が高く、見積もりの目的は完璧さではなく計画に使える精度を得ること
- • ストーリーポイントは相対的な大きさを表す指標で、個人差の影響を受けにくい
- • プランニングポーカーは声の大きい人に引っ張られず、認識のズレを発見するための手法
- • 過去の実績データ・スパイク・適切な分割・計画上のバッファで精度を高められる
確認クイズ
1 / 3ストーリーポイントの説明として最も適切なものはどれか?