アジャイルな見積りと計画づくり:第2部:規模を見積もる「7章 再見積もり」まとめ

目次

  • 再見積もり
  • 再見積もりすべきでないとき
  • 再見積もりすべきとき
  • 部分的に完了したストーリーの再見積もり
  • 再見積もりの目的
  • まとめ

再見積もり

  • ストリーポイントも理想日も、実装するフィーチャの全体的な規模と複雑度をあらわす数値である。特に、ストーリーポイントはフィーチャの実装にかかる期間の見積りではない(とはいえ、こうした勘違いに陥ることもよくある)。フィーチャの実装にかかる期間は、フィーチャの大きさ(これを理想日かストーリーポイントで見積もる)およびチームの進行速度(ベロシティ)から導出される。ストーリーポイントと理想日の規模の見積りであることを頭に入れておけば、いつ再見積もりするかを理解するのも簡単だ。
  • 再見積もりが必要になるとき
    • ストーリーの相対的な規模に変化があったとき
    • チームが判断したとき
  • ストーリーポイントや理想日の見積りを使っているときは、あるストーリーの実装に想定よりも長く時間を要したというだけでは再見積もりはしない。

再見積もりすべきでないとき

  • 例1
    • イテレーションで達成すべきストーリーが4つあり、すべてポイントが3である。チームはイテレーションで6ポイント達成した。しかし、本当は12ポイント達成したかった。チームはこの結果を受けて、ストーリーが最初に考えていたよりも2倍の大きさ(または2倍の複雑さ)だったので、時間がかかったのだと判断した。そこで完了させた2つのストーリーのストーリーポイントを2倍にした。
  • こうすれば、最初のイテレーションのベロシティは12ポイント(6ポイントのストーリーが2つ)になり、チームとしても満足できる。しかし、チームは最初に4つのストーリーをどれも同じ程度の規模だと判断したのである。最初のイテレーションが終了しても、その判断自体は変わっていない。であれば、残り2つのストーリーもポイントを2倍にしなくてはならない。チームは4つのストーリーポイントを増やしたので、ベロシティは増えた。しかし同時にプロジェクトの残作業量も2倍にしてしまった。つまり「完了したストーリーは3ポイントでベロシティは6ポイント」という再見積もり前の状況と何も変らないのだ。
  • この例から、ベロシティが補正装置だということが分かる。
  • 例2
    • ユーザーストーリー数が50、その見積りがすべて1ポイント、開発者は1人、1日にち1ストーリーポイントをこなす。1イテレーションは2週間で10ストーリーこなす。ベロシティは10。プロジェクトにかかる期間は5イテレーション、すなわち10週間。
    • 最初のイテレーションを終えてみると、10ストーリーをこなせるはずが、5ストーリーしか完了できなかった。ベロシティを素直に補正すれば、プロジェクト完了までに10イテレーションかかるのだ。2倍かかるということだ。
    • いっぽう、再見積もりしたらどうなるか。完了した5つのストーリーを再見積もりして、それぞれ2ポイントにしたとしよう。すると、私のベロシティは10ポイントになる(2ポイントに再見積もりしたストーリーを5つ完了させた)。このとき、私の残作業量の合計は45ポイントだ。となれば、ベロシティが10ポイントなのだから、プロジェクト完了までに必要な期間は4.5イテレーションだ。ここで問題がおきる。当初の見積りと結果とを、混ぜて考えてしまっている。私は後知恵を使って、完了したストーリーの見積りを2ポイントに変更した。残念ながら、これから取りかかる45ポイント分のストーリーに後知恵を適用することはできない。どのストーリーが2ポイントに相当する規模なのかは、実際にやってみないとわからないためだ。

再見積もりすべきとき

  • ストーリーを再見積もりすべきなのは、相対サイズが変化した場合に限る。

部分的に完了したストーリーの再見積もり

  • 私のベロシティの算出方法は、オール・オア・ナッシングの考え方に基づいている。この立場では、ストーリーが完了していれば(すなわちコーディングとテストが完了し、プロダクトオーナーによる受け入れが済んでいる)、ストーリーのポイントを全て加算し、ストーリーの一部でも残っていれば、加算するポイントはゼロだ。ベロシティの算出をイテレーションの終了時点でおこなうのであれば、確認も簡単だ。ストーリーが完了していれば、全ポイントを加算。少しでも残っていれば、何も加算しない。

再見積もりの目的

  • 再見積もりが必要かどうかについて、あまり思い悩まないこと。1つ2つのストーリーについて、見積りを間違えていると感じたら、全体として見積りが正しいと言えるように、できるだけ少数のストーリーだけを再見積もりすること。そして、再見積もりを、今後のユーザーストーリーの見積りの学習として活用すること。トム・ポッペンディークが私に教えてくれたように、「本当に失敗と呼べものは、学ぶことに失敗した場合だけだ」再見積もりしたストーリーから学び、その経験を成功への糧とするのだ。

まとめ

  • ストーリーポイントや理想日がフィーチャの規模の見積りだと理解していれば、再見積もりのタイミングも分かりやすい。再見積もりすべき時は、ストーリーの相対サイズについての考え方が変わったときだ。進捗が想定通りではないという理由だけで再見積もりしてはならない。ベロシティを補正装置として使うことで、見積りの不正確さは解決されていく。
  • イテレーションの終了時点で途中までしか完了できなかったストーリーは、ベロシティの算出に加えないことを私は勧める。私の好みは、ストーリーの全ポイントをベロシティに加える(ストーリーの実装とテストが完了して、プロダクトオーナーが受け入れた場合)か、さもなければ達成したポイントはゼロとみなし、ベロシティに加えないというものだ。とはいえ、部分的に完了させたストーリーのポイントを加えたい場合もある。よくある対処法は、ストーリーのうちでイテレーション中に完了させた部分をポイントとして見積もってベロシティに加算し、残った部分は別のストーリーとして書きなおすというものだ。このとき、完了分のストーリーポイントと残作業分のストーリーポイントの合計は、元々のストーリーのポイントと一致しなくてもよい。