owkyのブログ

マネジメントについて勉強するブログ

バーンダウンチャートから始めるアジャイルな見積もりと計画づくり

開発チームの作業進捗の管理にバーンダウンチャートを使い始めた。 そこでいろいろ疑問に思ったことを整理したみた。 結果として、ベロシティを安定させたり見積もりを漸次的に見直していくようなアジャイルなアプローチが、計画づくりや進捗管理においていかに効果的かを理解することができた。

理想線はどうやって引けばいいの?

バーンダウンチャートの進捗管理では、直線に残作業が減少していく理想線を基準にする。以下のような y = A x + B の直線が理想線となる。

  • x : 経過日数
  • y : 残作業量
  • A : 過去の実績から割り出した1日あたりの期待進捗(ベロシティ)
  • B : 見積もった総作業量

y = 0 となるポイントが作業の完了予定日となる。完了予定日ありきでAを逆算してしまうのは良くない。Aを実績ベースのベロシティにすることで理想線が信頼できるものになる。ベロシティが安定しているほど信頼度が上がる。

理想線からズレた(遅れた)らどうしたらいいの?

なぜ遅れが出ているのかをチームで確認する。何か想定外のことが起こっているのかもしれない。小さな遅れでも早期発見できれば対策として取れる選択肢は増える。

一方で毎日の進捗に一喜一憂するのも良くないと思う。 理想線とするベロシティは平均値なので、日々の進捗は良い日もあれば悪い日もあるはず。過敏に反応してると疲れてしまう。

ここでもベロシティがどれだけ安定しているかが肝になる。ベロシティが安定していて信頼できるものであれば、最終的には理想線に収束するだろうとして、どっしり構えることができる。スクラムのようにタイムボックスを重視してベロシティを安定させるプロセスは、実に理にかなっている。

理想線が引けたら、あとは進捗を測るだけで良いの?

最初に見積もった総作業量が完璧に正しいのであればそれで良いが、見積もりが正しくないことが判明したときに、突然進捗NGになる。

最初の見積もりが完璧に正しい訳がない。そのため、作業の進捗を正しく測るためには、残作業の見積もりを見直して精度を高くしていくことが必要になる。スクラムのように小さいサイクルで見積もり精度を高くしていく開発プロセスは、実に理にかなっている。

総作業量が増えたらどうするの?

ベロシティは変えないので、完了予定日が後ろにずれることになる。理想線を引き直しても傾きは変わらないので、チャートの見た目の変化が見えにくい。バーンアップチャートにすれば、総作業量が増えたことによるスケジュール影響が見えるようになるので良いかも。

スケジュールバッファは無いの?

バッファは考慮すべき。ベロシティにバッファ係数を掛けて、進捗度を小さくした「バッファ込み理想線」も引くのが良さそう。「理想線」と「バッファ込み理想線」の間に実績が収まっていればOKとする。

重要そうなポイントまとめ

バーンダウンチャート(もしくはバーンアップチャート)による作業進捗管理をより効果的に行うには以下2点を意識することが大事。

  • ベロシティを安定させて信頼できるものにすること
  • 総作業量の見積もりを見直して、その精度を高くすること

スクラムなどのように、小さなサイクルで計画とふりかえりを繰り返すアジャイルな手法は、ベロシティを安定させ、漸次的に見積もりが見直されるので、正しい進捗管理(予測可能性の最適化)ができるということになる。

総作業量の変化も可視化できるので、実はバーンアップチャートの方が良いかも