Thursday, September 1, 2011

Project Estimation basics

What is Project Estimation?
Last weekend, my wife and I along with our three year old went for a movie. As it was not a kid flick, my son had zero interest in watching the movie. So he starts with his version of the "20 Questions" game. All questions go towards "When do we go home?" and i gave him some creative answers like "As soon as all the bad guys in the movie are caught"..."As soon as this song ends" (Indian Movie) and so on and so forth.....

This is what is estimation is all about. To arrive at an estimate means to use "Calculated Approximation methods using inputs available to assist in a planning objective"

Preparing IT Project estimates is usually not a one man job (of course that depends on the size of the project), there may be several people involved in preparing a project estimate, right from Project Manager to Business analysts, Development Team, Testers, QA, Infrastructure resources to Project sponsors and End users. Everyone has a say and a stake in making sure the project estimates are to the mark or nearabouts.
As we all know a project has multiple phases...Initiation, planning, development, testing, deployment etc. The projects estimates have to account for each and every one of this phases along with areas that are not phase dependant e.g. Project Management, Vendor procurement, Software licensing, hardware and infrastructure etc items.


Why do we need estimations? Benefits
There is no downside in preparing a project estimate but the advantages are manifold. Project estimation is more of a science than an Art. Projects are usually undertakings that cost time and money. To avoid slippages and failures due to any of these known/unknown factors, the projects have to be properly estimated and controlled.
As both overestimation and underestimation pose a problem to a project. Overestimation will cause the project to get over budget or even cancelled and Underestimation may caue resource, scope, quality and timing issues, again may lead to Project failures.


So what is the need to estimate a project...several reasons
1> To get approval for the project so sponsors get an idea how much the project will cost - ballpark, */-10% etc, resource, time requirements

2> To streamline, monitor and guide project costs, resources when project is in progress
3> To determine project success or failure based on final project costs vs estimation
Estimation Process
Estimation Process
There are 3 processes one can use to do project estimation
1> Analogous Estimation
   This estimation process makes use of knowledge base from similarly executed projects and prepares project estimates based on those.
  
2> Expert opinion
   This process makes use of experience of people/projects from prior similarly executed projects.
  
3> Activity breakdown estimation
   This process makes use of breaking down the project into multiple Tasks and activities and estimation is done based on these individual tasks and activities


Estimation Techniques
There are quite a few techniques that can be employed to estimate a project
1> Three Point estimation
This is my favourite project estimation technique (I call it the BMW technique - Best, Most likely, Worst case) wherein we use statistical data and information and come up with Best case, Most likely and Worst case estimates

To prepare these estimates, we use the Activity breakdown process. This means the Project is broken down into multiple tasks and estimates are prepared for each of the individual tasks and then added up together.
Estimates are prepared for the foll 3 scenarios - Best Case (B), Most Likely (M) and Worst case (W).

Based on this we come up with,
      A> Standard deviation value, SD = (W - B)/6


      B> Weighted Average, E = (B + 4M + W)/6

2> Base and Contingency Estimation
This is a very simple and straight forward estimation technique but not that accurate, wherein we prepare estimates for the best case and worst case scenarios. But this does not give you a similar confidence level as obtained by the prior method as it is more scientific.

How does it work?To calculate the base value assume that the project is executed in the minimal time duration possible and estimates are prepared based on that. To calculate the contingency (or Risk) values (which generally ranges from 10-50% of base estimate) list down all the project risks in a risk register and use that for preparing your project estimates.
These two values are then summed up to prepare the final Base and contingency estimate.
Note that for calculating the contingency value, user can also prepare an actual list of expected risks and issues instead of assuming a fixed percentage of the base. This gives a more nearer number for the risk value.

Also as mentioned earlier, along with the Project task level estimates we have to make sure we account for the non technical areas as well, like,
i> Infrastructure and Hardware costs
ii> Vendor costs
iii> Training costs
iv> Project Management
v> Business Analysis
vi> Testing Costs
vii> Quality Analysis etc


3> Ball park or Order of Magnitude estimation
Here the estimates calculated are usually two to three times that of the actual estimates.
To perform an order of magnitude estimation, break the project into multiple tasks and activities and then score them on basis of Complexity and Amount of work effort involved.
Based on this weighing factors prepare estimates in terms of resources and Time. For e.g. a Task with medium complexity and small size would need (say) 2 resources for 2 weeks.


Summary
Like i said above, project estimation is a Science more than an Art. Always use your prior experience and expertise of others who have been involved in similar projects to come up with a more real to life estimation. Make sure you give sufficient weightage to the risks and issues involved in estimating a project.
Also ensure that you review your estimates at the end of the project to see where you went wrong or what can be done better in the future.

Hope this article will help you in better estimating your projects. Please let me know your thoughts and comments.

2 comments:


  1. Hi, probably our entry may be off topic but anyways, I have been surfing around your blog and it looks very professional. It’s obvious you know your topic and you

    appear fervent about it. I’m developing a fresh blog plus I’m struggling to make it look good, as well as offer the best quality content. I have learned much at your

    web site and also I anticipate alot more articles and will be coming back soon. Thanks you.







    Function Point Estimation Training

    ReplyDelete
  2. Hi there, awesome site. I thought the topics you posted on were very interesting
    Software Estimation Techniques

    ReplyDelete