We all know that it can be extremely challenging to estimate the size and cost of a project, since a project by definition is unique in nature, often a new product, service or business change. As size and complexity of the project gets larger the harder it can be to do this properly. But there are several techniques available that can greatly improve the project estimation process and accuracy.
In this post I’ll try to cover some of the most well known estimation techniques that can be used for judging the size of any project.
It's important to stress that these things apply no matter if you're doing agile (Scrum, Kanban, etc.) or more traditional waterfall (Prince2, PMI, etc.). You will need to do some of these things at some point in any type of project!
This post is aimed mainly at Project Managers with little or no experience in project estimation. If you're a Project Manager with many years of experience I still believe you can learn some new tricks from the concepts in this post, so you might want to skim it anyways.
Project estimation can not be done properly without at least some understanding of the scope of the project. If you don’t know what the project is trying to achieve, then there is little chance of being able to accurately estimate the effort required.
A good rule of thumb is that the more detailed the scope of the project, the more detailed and accurate the project estimate will be. The size, complexity and stage of the project will impact greatly on the level of accuracy required.
Aligning the the project estimation requirements, and thus the time consumption needed to create the estimates, to the required accuracy, scope and stage of the project must also be considered.
Project estimation can typically be done most successfully with an agile mindset. By this I mean that the estimates should be generated as early as possible e.g. in the proposal phase and then continuously refined over time, both before and after the project has been initiated. These refinements can be thought of as levels or versions that become more and more accurate.
When estimating a project it is important to understand at which stage the project scope and definition it is in as this will determine the level of accuracy required. The accuracy will be the deciding factor for how many percent over or under the project can be expected to end up when complete. For example if the estimate is defined as an "Order of Magnitude" estimate it will have an accuracy of about plus or minus 50-100%.
This means that if the project estimate is $200 with an estimating accuracy of say 50%, the business knows that the project will at least cost $100 and at the most $300 to complete.
The point is to provide a “ballpark” estimate using the information available at the time. Since project estimation is a process, the estimate will always undergo several iterations of refinement. The estimation accuracy will thus improve as the project scope is more thoroughly understood. This also means that the uncertainty will lessen the further the project progresses towards completion.
I'll go into more details about estimation levels in a later post.
In this section I'll describe some of the possible methods that can be used to generate an estimate.
Before we do that, it's important to stress that inputs to estimates should, to the largest extent possible, come from “experts” or “doers” of the scoped requirements as this will give the best results. It's typically the role of the Project Manager to gather this knowledge or pinpoint the experts to consult with. It's also typically the Project Manager's responsibility to asses any risks that might come up before, during or after the project.
With that said, let's dig into the different methodologies.
Analogous estimating uses one or more similar past project to estimate the duration or cost of your current project. This is used when there is limited information regarding the project to be planned. An analogous estimate is considered “top-down” and is generally not as accurate as other estimating techniques if used solely.
For instance, if it cost $100 to develop a 2 page website a few months ago and you are responsible for developing a new 2 page website, you estimate it to cost $100. You might also infer that developing a 4 page website will cost $200 to build.
These are methods which involves breaking the problem into smaller more manageable parts until it is possible to estimate with reasonable manual accuracy. Depending on the necessary accuracy this can be broken down into each individual task or aggregated to a higher level of work packages. The individual costs of each work package is then totalled to form the full bottom-up project estimate.
The “bottom-up” estimate takes the longest amount of time to prepare, but provided that sufficient component detail is taken into account, this project estimation technique can provide the highest level of accuracy.
The three-point estimate is one of the easiest techniques because it can not only greatly increase the accuracy of project estimates, but the entire approach also makes it easier for more than one expert to provide their input. It's similar to bottom-up estimating but more accurate and can better be used at a high level as well.
The 3-point estimate, also known as the PERT (Project Evaluation and Review Technique), provides a range of project estimates and calculates the weighted average of that range. This means that 3 data points, the “best case”, “most likely case” and the “worst case”, must always be provided for each part of the estimate.
An advantage of this methodology is that it psychologically can be easier to provide a number within a range and beginning with the worst case often leads to less resistance. This technique also reduces the risk of inflated estimates.
For instance in the case of our 2 page website example from above, we might say the the most optimistic cost to complete is $80, the likely case is $100 and the most expensive it will ever be is $200. Without going into the details of calculating this, using 3-point it would equate to an estimate of $114.
Parametric estimation is similar to analogous estimating but provides an increased level of accuracy due to the statistical nature of the estimating technique. Essentially, a parametric estimate is determined by identifying the unit cost or duration and the number of units required for the project or activity. It's important that the measurement is scalable in order for it to be accurate.
For instance, if it took me two hours to mow my one acre yard last week and this week I’m mowing four acres, I could estimate that it will take eight hours to mow.
However, if the first one hour was spent transporting my tractor and preparing it to mow, the estimate would need to be scaled appropriately: 1 hour for transporting and then four hours to mow, for a total of five hours.
Common for size-based techniques are that estimates are calculated based on the use of a formula derived from historical data. To derive any meaning out of these types of points, which is an arbitrary size, it is necessary to look back into the historic data to derive how many hours constitutes a single point. If no historic data exist it's possible to start from a standard baseline from industry data until enough data is collected in the organization.
For instance based on the number of story points assigned to a single user story it can be traced back to how many hours on average it will take to develop one point and thus a complete estimate for the project can be given if the entire backlog is known beforehand the project is commenced. Often it's not possible to know the entire scope of the backlog but still the preliminary version of it can give a good indication of the entirety of the project even though it might not be 100% accurate.
No single project estimation technique will suit all projects. To achieve the most accurate results we suggest using and combining a few of these estimating techniques to provide increased accuracy to your project estimates. For instance you can use a bottom-up method like 3-point and combine it with a top-down method like Function Points.
We know that the effort involved in combining several methodologies most often is not a realistic way to go. In that case we recommend sticking with one single method for everything as that will at least give you some comparable historic numbers that can be used proactively to learn from.
Of course no estimate comes without a risk, otherwise it wouldn't be an estimate, which means that risks and uncertainties should be taken into account as well. These can take many forms but it's always a good idea to include some sort of slack into the plan, preferably based on historic data, in the form of extra hours, a buffer for unforeseen costs and/or both. This is often managed through a “contingency” budget.
As with most project estimation techniques, each have their own advantages and limitations, some key considerations when working with any of the techniques are:
If you need to select one and only one methodology to use, and don't have a ton of experience, we always recommend doing the 3-point analysis as this gives the most accurate results and enables you to quickly gauge the risks associated with your estimates as well. Another advantage of this method is that you can easily get to a high level estimate quickly and then break it down further as more information about the project is uncovered.