Importance of Estimation in Software Development

The most important component of Project Planning is Estimation. Estimation of the Work involved will give the Project Manager a sense of the magnitude of work required to be executed to get the expected application built.

As mentioned earlier, scope is very critical for the success of a project. Once the scope has been frozen (or at least prioritized), the estimation plays a big role in determining the efforts required for development and getting the team members finalized.

In a RUP project, the estimation is mostly done by 2 methods:

  • CoCoMo – Historical data plays an important role to find the accurate estimates for the new projects. Fine-tuning will be done based on the project-specifics.
  • Function Point Analysis – The software is divided into a number of function points, each having their inputs, outputs and processing factors. Other environmental characteristics are applied to get the final estimation.

Following these methods will give you an accurate estimate for your project, right? Not Always. It depends on the specifics of your organization, the team that you are planning to induct, the customer’s organization, the overall goal, constraints that have been (or not) considered. So, how do you validate your estimate?

  • Do a quick and dirty estimate by another methodology. If you have done it using CoCoMo, do one using FP
  • Have a review done by a Senior Manager (if it is a strategic project, get it done by your boss) on the estimates. Explain how/why you have arrived at a given estimate and the details. This will help him (and yourself) validate the assumptions that are taken into consideration.
  • Ensure that you have covered all the corners –
  1. Have you included testing activities also in the estimates?
  2. Have you left enough time/resources for documentation?
  3. Are there any interfaces present? How are you taking care of them?
  4. What is the level of detail you have taken for testing activities? Have you included all the various types of testing?
  5. Have you included Warranty Efforts also?
  • Include all the ‘Expectations‘ for ensuring that the estimates stick to what you have come up with. For example, you might expect a web-service to be already available for a function. If this assumption is wrong, you will end up writing the web-service (for free)
  • Include all the risks that you see in the project. Any change in risk status, will also affect the estimates.

All these points will ensure that your estimate is close to what will be comfortable for you to implement the project. Then, all that is required for you to do is to Pray and Wish it is true 🙂

P.S. – Noticed a good article introducing the concepts of Function Points by name Introduction to Function Points.

Tags: , , ,

One Response to “Importance of Estimation in Software Development”

  1. Collective Project Planning « My Thoughts on Technology, Management, … Says:

    […] over the exercise of coming up with the activities involved, sequencing them, assigning a duration (arriving at the estimate to start with), discuss any risks that they foresee in the project. This should be done at the […]

Leave a comment