前回に引き続き、「プロジェクトが遅れる理由」。
今日は「間違った見積り」についてです。
これも良く聞かれる遅延理由ですね。
「プロジェクトが走り出してみると、提案の際に出した工数や期間では全然足りないことがわかった」という感じです。
これにはいくつか理由が考えられると思います。
例えば、こんな感じです。
(1)RFPには必要最低限の機能しか書いていなかった。
(2)価格競争になったため、やむを得ず値段を下げて提案した。
(3)プロジェクトの責任を負わないエンジニアが提案を担当した。
一つずつ見ていきましょう。
まず、(1)ですが、これは提案の時よりも要件が増えているということです。
どれくらい追加されたかにもよりますが、大幅に増えてしまった場合、提案時の見積りのまま開発すれば、当然赤字になりますし、納期に間に合わせるのも難しくなります。
よって、この場合は、プロジェクトの初期で要件を再度確認して、もし追加が大量にある場合は、
・追加コストを請求する
・フェーズ分けをして、別提案とする
などの対処が必要です。
それでも、顧客から「当初の見積りでやれ」と言われたら、そのプロジェクトから降りることも考えるべきだと思われます。
難しい決断ですが、失敗することが見えているプロジェクトを続けることに意味はありませんから。
次に、(2)ですが、これは「値段を下げてまで取る決断を会社がした」ということですから、そもそも赤字覚悟のプロジェクトになります。
この場合、プロジェクトを任された時に、会社に対して「ここまで赤字になって当然ということを認識してくれ」「可能であれば、赤字分を会社から補填してくれ」という要求をする必要があると思います。それをしないと、自分やメンバが人柱になってしまいます。
そして、最後の(3)ですが、これが一番多いかもしれません。
提案時の担当エンジニアがプロジェクトに責任を持たないとどうなるか。
そのエンジニアは受注を評価されますから、当然少なく見積もった方が受注率は上がることになります。
これでは、いつまで立っても見積りは正しくなりません。
私は、提案に関わった人がプロジェクトまで責任を持ってやり遂げるべきだと思っています。少なくとも、プロジェクトマネージャが提案の最終段階で見積りを承認することが必要です。
それでも、もし見積りが間違っていたら・・・。
納期に関しては、上にも書きましたが、顧客と交渉してフェーズ分けをしてもらう、などの交渉が必要になります。
そして、工数に関して。
私は今の人月計算による工数算出は正しくないやり方だと思っています。
(ファンクションポイント法などの見積もり方はありますが、提案時に機能抽出までやるのは難しいかもしれません。)
工数算出については、また後日詳しく書きたいと思います。