正確な工数見積もりを

新規 Flash サイトのプロジェクトが立ち上がる前には、上司から「ざっくりでいいからどれくらいの工数か教えて下さい」と言われる。僕はこの、工数の見積もりという行為が苦手だ。「3 日でできます」と大口を叩いて実際は 3 週間も掛かっては迷惑な話だし、その逆も然り、だ。クライアントに請求する金額にも大きく影響するので、ルーズな見積もりはできない。

しかし、ここ数件の案件は「勘」と「経験」のみを頼りにした工数の見積りが、意外と上手くいっている。まぁ、結果としてなのだが……。幸い、それらの案件では徹夜や休日出勤が全く無い。

とは言え、確かなデータも無く、勘を頼りに精度の高い工数を見積もるというのも限界があるだろう。丁度、Software People 誌に「見積もりと進捗管理」という記事があった。記事には見積もりのテクニックが書かれており、端的に言えば

  • 全体を細かいサイズにブレークダウンして
  • 具体的な数値で計算する

ということだ。ブレークダウンの切り口は

  • 要件の数
  • サービス (ファンクション) の数
  • クラスの数
  • データの量

などが挙げられる。要件から機能を割り出し、機能からクラスの数、ソースコードの行数までを導出 (予想) することができる。クラスレベルに落とせなくとも「XMLデータを読む」「複数の SWF を管理する」などの機能を羅列することは可能だ。

これらのブレークダウンしたデータを元に仮説を立てていけばよい。もし、プロジェクトに 50 クラスが必要だと見当がつけば、1 日に 5 クラスを書いたとして 10 日、という見積もりになる。また、作業時間の計算は、日数ではなく時間で行うと、より具体的なものになる。「XML データロードモジュール作成 : 2 時間」といった具合だ。

いい加減な見積もりで「先が全く見えない不安」に駆られることの無いよう、具体的なサイズを踏まえた見積もりを行いたい。