Wednesday, June 4, 2008

Project Estimation Techniques

Introduction:

Estimation is an essential part of the project management methodology. Estimation is used of a number of purposes:

  • To justify the project, particularly at the proposal stage.
  • To compare costs with the anticipated benefits.
  • To secure the resources required to successfully deliver the project.
  • To enforce the disciplines needed to make the project succeed.
  • To ensure that the support impact of the project is fully understood.
  • To inform and improve the software development process used.

Overview of Estimation process:

The best people to undertake estimation are the staff who is going to do the work. The staff chosen to produce an estimate is drawn from MIS, customer areas and/or service partners who have relevant experience of similar previous projects or tasks in the business area. Estimation technique is based on three components:

a) Expert judgment: i.e. consultation with qualified experts from within MIS and the organizations business and service partners. This will be supplemented by expert input from software suppliers and consultants on a need basis.

b) Experience: i.e. comparison of the proposed project or task with one or more previously completed developments.

c) Task Decomposition: i.e. decomposing the project into components, i.e. the Work Breakdown Structure, and estimating these components individually to produce an overall estimate.

The estimates are validated through peer review and are backed up by an experienced Project Manager who takes overall responsibility for the total. Estimated are reviewed throughout the project lifecycle. Estimates, and the process followed to produce them, are transparent and consistent across all MIS projects.

Base and Contingency method

In this technique all estimates will have two components the base and the contingency. The base is the minimum expected time required, i.e. when everything goes well. The contingency is the amount of trust placed on the base when risks are taken into account. The contingency is generally expressed as % of the base estimate.

For a straight forward task contingency may be between 10 to 20% and for a high risk task it may go to a level of 50% or more. Separating the base and contingency will make the estimations clear and easier. We can derive a base figure based on the experience without talking all the issues or risks that may occur. And to determine the level or % of contingency we can use any risk analysis techniques.

The contingency is based on the possibility of a risk occurring (how likely the risk going to occur) and weightage given to that risk (The effect/impact of the risk). Project contingency can be estimated in terms of money, resources or a mixture of both. Resource contingency is managed by adding a factor to individual task estimates. The Project Manager will also consider project wide risks and undertake a risk analysis to determine the correct amount of contingency to allow for them.

For providing estimates using this technique the following steps to be followed.

  • Decompose the project into a list of tasks i.e. Work Breakdown Structure.
  • Estimate the base and contingency (task level) for each task.
  • Add all the estimations together.
  • Add the project level contingency.

An important point to note here is we should not do double-counting i.e. adding contingency to both task and project level estimated for the same risk. Below is a sample to show estimation using this technique.

----------------------------------------------------
Task Name         Base     Contingency     Total
----------------------------------------------------
Build Login UI    8 Hrs    0.8 Hrs         8.8 Hrs
                           (10% of base)

Login Validation 16 Hrs    3.2 Hrs        19.2 Hrs
SP                         (20% of base)
-----------------------------------------------------
Total            24 Hrs    4.0 Hrs        28.0 Hrs
-----------------------------------------------------
Total Task level estimate (Including Task Level Contingency) = 28.0 Hours Contingency at Project Level = 6.0 Hours (Based on the risk analysis) Overall Estimate = 34.0 Hours (Including both task level and project level contingency)

Three Point Estimation method

Another estimation technique that can be used in place of base and contingency method is three point estimation technique. This technique is based statistical methods, and in particular normal distribution.

For every estimate we produce three numbers/values: a = the best case estimate m = the most likely estimate b = the worst case estimate These values are used to calculate and E value for the estimate and a Standard Deviation using the following formulae: E = a + (4 * m) + (b / 6) SD = (b – a) / 6 E is the sensible estimate for the talk and is a weighted average which taken into account both the most optimistic and pessimistic estimated provided. SD is the variability or uncertainty in the task estimate, and in essence is a measure of risk.

We can use E and SD to convert these estimates to Confidence Levels as follows.

  • Confidence Level in E value is approximately 50%
  • Confidence Level in E value + SD is approximately 70%
  • Confidence Level in E value + 2 * SD is approximately 95%
  • Confidence Level in E value + 3 * SD is approximately 99.5%

For providing estimates using this technique the following steps to be followed.

  • Decompose the project into a list of tasks i.e. Work Breakdown Structure.
  • Estimate the E value and SD for each task.
  • Calculate the E value for the total project work as E (Project work) = ∑ E (Task)
  • Calculate the SD value for the project work as SD (Work) = √ ∑ SD (Task)2
  • Calculate the E value for the project duration as E (Duration) = ∑ E (Critical Path Task)
  • Calculate the E value for the project duration as SD (Duration = √ ∑ SD (Critical Path Task)2
  • Depending on the confidence level required on estimations use the E Value and multiple of SD to calculate the final estimate.