TechRepublic columnist Tom Mochal receives dozens of e-mails each week from members with questions about project management problems. He shares his tips on a host of project management issues in this Q&A format.
I am a team leader for a group of nine developers. In general, we do support and enhancements, but once in a while we are asked to do a large piece of work that would definitely be considered a project. Our problem is that we have a hard time estimating what the effort and duration is for these larger projects. We typically underestimate the work, and then end up trying to shove everything in over the last few weeks. I am tempted to just take the estimates we receive and double them in the future. Are there any simple answers? -- Kurt
Kurt: In a prior column, we looked at many of the reasons why support staff are notoriously poor estimators on larger work efforts. We saw that many of the characteristics of support work conspire against the support staff when they try to estimate large efforts. The good news is that if you understand the traps and try to avoid them, and if you learn some basic estimating techniques, you can do a much better job estimating work.
One of the characteristics of a project is that the work and deliverables are unique. This means that the project estimates will be unique as well. However, basic estimating techniques can help you create an initial assessment of how long a project will take. Some techniques rely on brute force, some take advantages of similarities with other projects, some rely on mathematics and some rely on other people's opinions. If possible, you should use two approaches and compare them to see if they are reasonably consistent. If the two estimates are close, your estimate is fairly accurate. If they are not, you should refine the estimates and locate weaknesses, or pick a third estimating approach to try to gain some consistency.
Work breakdown structure
The most accurate way to estimate is usually to build a work breakdown structure. This involves stating the work at a high level and then breaking the work into smaller components until each activity can be estimated in no more than 80 hours. (Or 40 hours if the project is smaller.) This usually also takes the most time and requires the most effort. However, if you understand the work fairly well, and if you make sure that the required work is included in your work breakdown structure, you can usually come up with an accurate estimate.
Even though all projects are unique, some projects are quite similar to others. Using the previous history technique, you look for similar projects previously completed and then estimate your work based on the actual effort required for the other project. This is a great way to estimate work since it allows you to reuse prior history. However, it requires that you have a similar project(s) in the past and that you have an accurate accounting of the actual effort that the project took. For example, let's say you are upgrading to a new release of your accounting software. If it is the first time you have implemented a new release, you have no prior history. However, if you have upgraded releases before, you should have a pretty good idea of what it will take to upgrade this time. Even though the project is unique, it is very similar to work that was done previously.
Analogy is very similar to previous history estimating. However, instead of having a prior project that was a close match, you look for projects with similar characteristics. For instance, let's look at our example of the project to upgrade accounting software. If you have never done an upgrade before, you won't know how long the project will take. However, perhaps you do have experience upgrading a release of an Accounts Receivable software package. Even though the work is not the same, it is similar. Understanding the work and time involved in the Accounts Receivable upgrade could help you estimate the work and time required for the accounting package upgrade.
Estimating based on ratios is similar, except that you take into consideration the size of your current project as compared to a previous project. An easy example is that you may have installed a new accounting package in four regional offices in the past. Now you are asked to implement the same package in two additional offices. All things being equal, it makes some sense to think that the effort for the new project (two offices) will be half the effort required by a prior project (four offices).
Even though you may not have done a project like this before, someone else probably has. Search out internal or external experts who can provide guidance on the estimate given their past experience. For instance, if you have to implement a new technology, you can find a research analyst that can help you estimate the level of effort involved.
To use the parametric modeling technique, a pattern must exist in the work so that an estimate of one or more basic components can be used to drive the overall estimate. For instance, if you have to implement an accounting package in 40 branch offices, you could estimate the typical time and effort required for a large, medium, and small office. Then group your 40 offices into buckets of large, medium, and small. Finally, do the math to estimate the entire project.
You actually gave another crude example of this technique in your question. You said that you would double the estimated effort that your team members provided. Since an algorithm is involved, this could be a modeling technique as well.
Kurt, your problem is one that I have encountered many times. The problem with support staff estimating larger pieces of work is partly cultural and partly skills related. First, their normal work culture is to identify and resolve problems quickly. This gives them a short-term mentality that doesn't always transition well when they need to plan and estimate work over a longer time horizon.
Second, there may be a skills gap. To bridge this, introduce your staff to the techniques for estimating that I've described here. These techniques might make it easier to estimate larger work efforts using techniques and resources that already exist in your company. Look at both areas before giving up and doubling their estimates. If you can teach them to be better estimators, you will receive more accurate estimates in the future.