Opinion: Estimating Software Development Projects | CIO Insight

Opinion: Estimating Software Development Projects

Written By
John Parkinson
John Parkinson
Jul 20, 2006
3 minute read

One of the hardest things to do in any human endeavor is to predict the future accurately. Since the future hasn’t happened yet, it is, by definition, to some degree uncertain. We may harbor highly developed expectations about what’s going to happen, but in most circumstances, we cannot be entirely sure. Yet for many “economic” endeavors, it’s important to provide just such a prediction. It’s unlikely we will get permission to do something that requires an investment of time, money and other assets if we can’t offer some degree of certainty about the outcome.

Software projects are no different. We need to be able to predict how long the work will take, how much it will cost, how much resources will be required to complete the work, and what skills and experience the people involved in the project will need. One school of thought holds that developing software is more akin to developing a new product than to manufacturing something that is well understood. Requirements evolve as features are developed. Some parts of the job turn out to be harder than expected, others easier. Some people work faster than others or are more skilled, so that even at the same pace their work gets completed faster because they see better ways to solve problems. For managers trying to assess the amount of effort and time will be involved, there are many variables to consider and much ambiguity. What should they do to get the best possible answer? If the future is so uncertain, how can we predict anything useful?

Fortunately, we have some things going for us. First, not everything in the future is actually completely uncertain. The real world exhibits statistically predictable phenomenology at a useful level of detail for many events macro (the sun will rise tomorrow) to micro (my alarm will ring at the time it’s set for).

Second, we can use history as our guide: We can measure and record what actually happened in the past and (a) identify things that always seem to happen and (b) what things seem to cause differences in outcome (the determinants of variability). Then we can use these observations to build predictive models that can be refined and improved through use, and the more we use them the better we should get.

And third, there are constraints (some based on the laws of the universe, some arbitrary, but just as “real”) in the real world that let us eliminate or ignore part of the range of what’s theoretically possible as an outcome.

Estimation is the process by which predictions are constructed, tested and offered up with a known degree of confidence. A lot of different estimation methods have been developed (for software and other kinds of development efforts ranging from civil engineering to event planning). But all successful methods fall into a small number of categories, according to the strategies they use to reduce uncertainty. There are three basic approaches.

Next page: Making Models

CIO Insight Logo

CIO Insight offers thought leadership and best practices in the IT security and management industry while providing expert recommendations on software solutions for IT leaders. It is the trusted resource for security professionals who need to maintain regulatory compliance for their teams and organizations. CIO Insight is an ideal website for IT decision makers, systems integrators and administrators, and IT managers to stay informed about emerging technologies, software developments and trends in the IT security and management industry.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.