アジャイルな見積りと計画づくり

アジャイルな見積もりと計画づくり」を読んだ。前期のプロジェクトで開発の見積もりがうまくできず、リリース延期などを経験し課題感があったので読んでみようと思った。

この記事では本から学んだことや感想等をまとめてみる。

3行でまとめてみる

  • アジャイル開発における計画は変化するものである。
  • 見積もりは開発の規模・複雑性を相対的に表したもので、期間は計算によって導出する。
  • 相対的な規模に変化があったとき、再見積もりを行う。

計画は変化する

計画は変化するもの、というのが本書の強いメッセージとして感じた。

  • プロジェクトを進める中で新しいリスクが見つかる。
  • プロジェクトを進める中で知識が蓄積され、効率的な開発ができるようになる。

これらの理由から「最初から完璧な計画を策定することなんて無理」というのが本書の立ち位置だと思っている。

自分は計画というと「ビジネスサイドとのコミットメント」のような理解でいたので、この考え方は新鮮だったが納得するものでもあった。
計画はコミットメントではない、と本書にも書かれていたが、実際の所Bizの人はそう捉えることの方が多い気がする。なので、計画は変更されるものという理解はPMにも必要なのかもしれない。

見積もりは相対的な指標、期間は計算で出す

見積もりをどのように行うか。

  1. 実装の規模・複雑性から相対的に出す。
  2. 一定期間で消化したポイント(ベロシティ)をもとに、期間を算出する。

まず1の手順。
プロジェクトのタスクに対してポイントを割り振っていく。この時、基準となるようなタスクが1つあると良い。それを1とすると、他のものはそれの何倍くらいか等を考えやすい。

このとき「プランニングポーカー」という方法が使える。タスクに対する見積もりを各々考えて、せーので出す。複数人でやることによって、自分が見落としていた複雑性などに気づけることがある。

次に2の手順。
実際にスプリントで、どれほどのポイントを消化できるかを確認する。これが分かれば、プロジェクトをどれくらいで完了させられるかが分かる。例えば、50ポイントのプロジェクトで10ポイント/週に消化できるなら、5週で完了させられる。

相対的な規模に変化があったとき、再見積もり

再見積もりをするタイミングについて。
分かりやすいのは、スプリントで想定以下のポイントしか消化できなかった時だと思う。想定外に複雑なタスクだった場合には、それ以外のタスクのポイントも同様に複雑ではないかを考える。

  • タスクA: 1
  • タスクB: 3
  • タスクC: 3
  • タスクD: 3

A,B,Cをスプリントに入れていたが、A,Bしか消化できなかった。Bが想定外に複雑だったから。タスクBを 3→6 として再見積もりしたならば、他のタスクC,Dについても再見積もりをして、6とすべきである。