2011年7月3日日曜日

ソフトウェア見積り―人月の暗黙知を解き明かす を読んでの感想

見積りってどうやるのが業界標準なの?と長年疑問に思っていたので「ソフトウェア見積り―人月の暗黙知を解き明かす」を手にとって見た。



プロジェクトの工数見積りって要件もざっくりとしか決まっていない時点で6ヶ月で納品とかよく算出されるけれど、以前から「これってみんなは何を根拠に出しているのだろう」と前々から疑問に思っていた。自分の場合は、ほんとにざっくりとこんな機能がいるよね~、で、この機能は大体5日~、10日~、のような感じで算出するのだけれど、これってほんとあいまいだなぁ、と常々考えていた。

で、本書。そんな不安な思いを打ち消してくれる役立つ内容てんこ盛りだった。中でも自分的になるほど~と感心した点を以下にまとめておく。

不確実性のコーン
プロジェクトの初期では要求さえ明確ではないので正確な見積りを行うことがほぼ不可能で、その振れ幅は4倍~0.25倍にもなる。ただ、詳細設計が完了する段階までくるとその振れ幅は1.25倍~0.80倍になり、それ以降もプロジェクトの収束に向かって見積りの正確性は向上していく。

判断するな。数えろ。
恣意的な判断で、これは5日ぐらい、という判断をするのではなく、判断の基準となる過去のデータを調べて予測すること。その参考とする過去のデータってなんなのよ?という詳しい説明は本書でなされている。

範囲での見積り
シングルポイントで5ヶ月です、というような見積りをするのではなく、7ヶ月から+-2ヶ月です。というような範囲で見積りを出すようにし、プロジェクトの進行とともにその範囲が狭まっていくようにする。またそれぞれの見積りごとに正確性の割合を出すと良い。5ヶ月でリリースできる確立は15%ですが9ヶ月でリリースできる確立は90%です、のような感じ。

上記のほかにも、ステークホルダーにどのように見積りを認めさせるのか、など交渉のヒントにも言及されている。

本書を読むといくつかのすぐに使える技法を学ぶことは可能だが、だからと言って翌日からすぐに正確な見積りができるようになるわけではない。というのも、基本的に正確な見積りを行うようになるには組織全体として取り組む必要があるので、中長期的な視野にたってそのことを煮詰めていく必要がある(過去のデータを収集するあたりなどとくに)。ただ、正確な見積りのためには開発者個々人の見積りに対する高い意識も必要とされるので、そういうのを根付かせるための材料として本書を使うこともできるなと感じた。


--------------------
以下、本書を読んでいないと意味不明だと思うけれど、自分的メモ用に気になった公式をいくつか抜粋。
最良ケースと最悪ケースの見積りを考えるようにする。何も言わないと開発者は大体最良ケースに近い一点見積りを行う。
期待ケース1=[最良ケース + (4*最有力ケース) +最悪ケース]/6
期待ケース2=[最良ケース + (3*最有力ケース) +(2*最悪ケース)]/6
MRE(Magnitude of relative error)=[(実際の結果-見積り結果)/実際の結果]の絶対値
標準偏差=(最悪ケースの見積りの和 - 最良ケースの見積りの和)/6

0 件のコメント:

コメントを投稿