見積り精度向上という矛盾

カレーなる辛口Javaな転職日記」に@IT記事の批判があり、その中に見積りに関するものがあった。

この書き方だとカンで見積もる方式よりも、より高い精度で予測できる工学的手法が存在するかのように見える。しかし、現実には未だに「精緻に見積もる工学的手法」などというものは実用化されていない。また近い将来においても実用化される可能性もまずない。

見積り精度を向上させようとすることは、ソフトウェア開発においては、本質的な矛盾を抱えている。見積り精度を向上させるには、「同じものを同じやり方で作った、精度の高い多くのデータ」が必要になる。だが、「ソフトウェア開発はハードウェアにおける設計」であるから、まともな技術者、まともな組織なら、同じものを開発したりはしない。「同じものを同じやり方で作った、精度の高い多くのデータ」が得られない以上、見積り精度の向上は本質的に無理がある。

完全に同じではない類似度の高いソフトウェアを開発する場合ならどうだろうか。類似度の高いソフトウェアを開発すれば、大部分は、共通化されるだろう。すなわち大部分は「同じもの」になり、開発されないことになる。また、類似度の高いソフトウェアということは、新規性の低いソフトウェアということになり、開発する価値の低いソフトウェアということになりがちである。

「同じものを同じやり方で作った、精度の高い多くのデータ」が得られないソフトウェア開発において、見積り精度を向上させる工学的手法などというものは絵に描いたもちにすぎない。