アジャイルソフトウェア開発の昨日の天気
まとめ
アジャイル開発では、前回の実績を計画の予測値に利用します。
これを昨日の天気と言います。
よく使われるのは、直近3スプリントのベロシティの平均を、今回のスプリントの作業量の予想とするというものです。
昨日の天気とは
昨日の天気とは、
「今日の成果は昨日のと(たぶん)一緒」という原則
エクストリームプログラミングの本では以下のように述べられています。
先週の実績とまったく同じ作業量で計画する
昨日の天気はなぜ過去3スプリントの平均をとるか
「3スプリントの平均なら昨日、一昨年、先一昨日の天気では?」という質問を受けたことがあります。
これは個人的な理解ですが、元々の原則でやると、前スプリントの値を今回の予想とする事になります。
多くのチームで採用されている前提は、次のイテレーションでは現在のイテレーションで達成したベロシティを使うというものだ。(アジャイルな見積もりと計画づくり p165)
しかし、ベロシティの値は時に上振れ下振れすることがあり、それを防ぐために平均値を使っているのです。
ベロシティがブレるのは経験的に以下の場合です。
* 予想よりすごく難しいタスクがあり、詰まった。
* 前回のスプリントでギリ終わらなかったポイントが加算された。
安定的にに実現可能な値が欲しいので、3スプリントの平均をとることでオーバーワークを防いでいるのです。
例えば普段より1.5倍のベロシティになったときに、その値を元に予測すると苦しくなります。
目的
計画の目的は最小限の努力で十分な精度が得られることです。
予測はどれだけ努力しても100%になることはない、努力に応じて予測精度が上昇するとは限らないというのは、大前提となります。