No.82: 作業時間の適切な見積り

プロジェクトの計画策定段階において、個々のタスクの作業時間を精度高く見積もりたいのは当然のことです。開発プロジェクト、特にソフトウェアなどの開発においては担当者によって生産効率は大きく異なるのが実態です。どうやったら適切に見積もることができるでしょうか。
忘れてはならないことは、プロジェクトの計画を立てる前の段階で、すでにプロジェクト全体の見積りが行われ、それに基づいてあるいは調整を経たうえでプロジェクトのスタートまたは受注に至っているということです。すなわち、プロジェクトの計画段階における個々のタスクの見積り作業時間については、スタート前に行われた全体見積りの制約を受けるということです。
言い換えれば、計画段階で個々のタスクの見積りを積み上げた合計が、全体見積りを越えるわけにはいかないということですが、これはあくまで費用上のことであって、作業時間について言えば少し話は違ってきます。それは、作業担当者によって時間単価は違うべきものだからです。
前述の通りソフトウェアの生産効率は人によって大きく異なります。平均的プログラマが50時間かかるタスクを、上級プログラマなら半分の25時間で仕上げることができるかもしれませんし、駆け出しのプログラマなら倍の100時間要するかもしれません。
ここで、平均的プログラマの時間単価が6,000円、上級プログラマの時間単価が10,000円、駆け出しのプログラマの時間単価が4,000円であるとすると、当該タスクの作業コストは平均的プログラマの場合300,000円、上級プログラマの場合250,000円、駆け出しのプログラマの場合400,000円ということになります。
つまりここで言いたいことは、見積りとして比較すべきは作業時間ではなく作業コストであり、全体見積りの段階ではどのレベルの担当者を想定して作業時間を見積もるかということが大切だということです。
全体見積りの段階では、想定する作業者のレベルを明確に意識した見積りプロセスを確立させておく必要があるということです
そして、プロジェクトの計画段階における個々のタスクの作業時間の見積りは、割り当てられたリアルな作業者に対して行われます。全体見積りの段階で想定していたレベルとは違うかもしれません。そこで、事前に作業者のレベルを評価できているかということが問われます。
例えばプログラマのレベルに5段階があって、全体見積りの段階ではレベル3のプログラマを想定した作業時間、作業コストを想定していたが、実際にプロジェクトの計画段階ではレベル4の作業者を割り当てることになったので、係数を掛けて作業時間を見積りし直すということができるか、そのために必要な過去の実績や評価システムが確立されているか。
ここまでの話から、作業時間の見積りというのは、単に目の前の作業の見積りをする以前の、組織に積み上げられた実績と経験により成り立つものだということが理解いただけると思います。
さて、あなたの企業、組織では、全体見積りの段階で作業者のレベルを想定していますか。そしてリアルの作業者を割り当てるときに、見積りを補正する仕掛けができていますか。

