Original Post Date: Tuesday, August 12, 2008

I frequently attend trade shows and conferences focused on software development and/or cost estimating.  These shows provide a great opportunity for me to perform informal, unscientific surveys of the state of the software estimating discipline.  When queried on software estimating practices, more than half of those surveyed indicate a method that significantly resembles some attraction at a local carnival.  To the follow up question of “How’s that working for you?” the reply is almost always as expected – “Not too well”.

As an industry we have failed pretty miserably at institutionalizing software estimating practices.  Not to say that there aren’t pockets of excellence.  But too many of us are relying heavily on techniques that too closely resemble crystal balls or dart boards.

At the same time, when faced with a tool that promises to improve this situation, many people show great skepticism at the notion that a general purpose cost estimating tool will be able to address their unique estimating needs. I’ll be the first to agree that this skepticism is warranted - mathematical models created with other people’s data need to be used with care.

Nonetheless, a general purpose model, when used properly, will definitely improve an organizations ability to perform repeatable and accurate estimates.  There are two things a tool will do for you out of the box
1. It forces you to think about all of those factors that might impact the effort, cost and schedule of a project – significantly increasing the chances that important factors are not overlooked.
2. It provides a framework for data collection to improve organizational estimating processes going forward.

There is nothing mysterious or magical about good cost estimating.  It’s all about understanding how your business has performed in the past and having a language to translate that knowledge into predictions of future performance.  Indeed, the mathematics of the model needs to be logical and well thought out to provide a good framework.  But more importantly an organization needs to grow with that framework by feeding it with the knowledge they gain from each project.