Project Estimates

In my previous post on High Level Project Estimates, I talked about 3 points estimates to help provide an up-front estime of effort for a project. Aside from the effort estimate you also need to consider other aspects that the team will spend time on. The following are some aspects I consider with the kind of percentages (above the effort estimate) I have experienced. Note: these percentages are by no means standard or the norm they are essentially a rough guess based on the projects I have worked .

  • Planning Meetings @ 10%
  • Demos @ 2%
  • Code Reviews @ 5%
  • Retrospectives @ 5%
  • Dark Mater @15%
  • Bugs @15%
  • New Technical Stories and Spikes @ 25%
  • Change Requests (shouldn’t average more than 15%)
  • Holidays and Sick Leave @ 5%

You will also need to consider Management Overheads as well as Business Analysts (if included in the team), QA/Functional Testing, Support and Maintenance (if required).

High-level Project Estimates

Project estimations is at best a dark art; added to this is the fact that they are often required at the start of a project when your understanding  is at it’s lowest. However it is a necessary evil for the purposes of budgeting, planning and proposals. There are a number of techniques that take a shot at providing credible estimates. I’ve used the following two with some success.

Point based relative estimation

This works well where the requirements are at very high-level at the time.  Here point based relative size estimates are provided for each requirement. Then a sample set is taken and further elaborated. Once this sample is elaborated then each requirement is broken into tasks to provide effort estimates in man days or hours. These effort estimates can then be used to extrapolate the relative effort required for the rest of the requirements.

Three Point Estimation

This works well where the requirements are relatively well defined and we have an architecture/solution in mind. The technique is based on providing best case, worst case and likely case estimates for each requirement. We normally briefly discuss the solution for each requirement breaking it down into high-level tasks around the candidate architectural layers. The totals for the 3 types of estimates are gathered and to work out the Standard Deviation ((worst case - best case)/6) and the Weighted Average Estimate (best case + (4*likely case) + worst case)/6.  We can then work out the level of confidence as follows:

  • 50% confidence on the Weighted Average
  • 70% confidence on Weighted Average + Standard Deviation
  • 95% confidence on Weighted Average + 2 * Standard Deviation
  • 99.5% confidence on Weighted Average + 3 * Standard Deviation

Note: The functional and non-functional requirements are not the only factors in project estimates. You must also consider, in addition, other aspects such as Resourcing, Project Dependencies, Project Setup, Testing, Support, Training, Handover etc.