Software Estimation Techniques for New and Maintenance Projects

Multiple Software Estimation Techniques are available for estimating the efforts of a software project. However, not all techniques can be used for all kinds of projects. In this post, I am going to talk about 3 project scenarios and the appropriate estimation technique to be used for each.

New Software Project (> 30-35 MM)

Typically estimations are done at the pre-sales stage for bidding. The availability of information about requirements is limited. This makes the task of estimation very challenging and naturally it is error prone.

The ideal estimation technique could be function point analysis (FPA), which is an algorithmic estimation technique. FPA is a size and effort estimation technique based on features and suits this scenario. However there is a learning curve.

A non-algorithmic technique is wideband delphi.

Maintenance Projects

I include change requests for enhancements and bug fixing in maintenance projects. These are characterized by adequate availability of information. The system is already in place. A new module (can be large) or a new process or a customization (in case of COTS products).

A WBS (work break down) based estimation technique is an ideal choice. Program complexity method (PCM) or any similar estimation technique can be used, which requires breaking down of module into smaller units, assessing their complexity and then calculating their size.

Individual program Estimation

Most of us become project managers in our careers at some point in time and then loose touch with coding. As a PM, how do you judge if a programmer is providing estimate for an MIS report, he has to develop? He may lie about it or he may underestimate to impress you. So what to do?

In that case, a simple weighted average technique can be used to arrive at the most likely estimate. Ask your developer to provide you 3 values:

  • Minimum time to finish (a)
  • Maximum time to finish (b)
  • Comfortable time to finish (c)

Then use the formula, time to finish = (a+4b+c)/6

I hope I have covered the most common scenarios, however, in case I have missed out on some of the scenarios, do let me know.

Take care

Abhishek

Leave a Reply

Your email address will not be published. Required fields are marked *