The following techniques can be used at the project level or activity level, or for any sized work in-between.
Previous History. This is by far the best way to estimate work. If your organization keeps track of actual effort hours from previous projects, you may have information that will help you estimate new work. In this method, the characteristics of the prior work, along with the actual effort hours, would be saved in a database or other medium that could be searched for new projects. A person that is estimating new work could describe the characteristics of his project to see if similar work was done in the past. If so, he could review prior results to get a good idea of the effort required to do the new work.
Analogy. Even if you do not keep actual effort hours from previous projects, you may still be able to leverage previous work. Analogy means that you find similar projects, even if the project team did not collect actual effort hours worked. The prior project manager should have at least had an original estimate of effort and duration. Although he did not track the actual effort hours, he should know the actual duration. If the actual duration hit the estimated duration, you may be able to assume that the effort hours were close as well. On the other hand, if the project ended with a 20% overage in duration, you may be able to estimate that the effort hours were 20% over as well.
For example, let’s say a prior project was estimated to take six months and 2000 hours to complete. If the project actually was completed in six months, there is a good likelihood that the project also took approximately 2000 hours of effort. On the other hand, if the project was fully staffed and took seven months to complete, you might estimate that the project took around 2300 hours to complete.
PERT (Program Evaluation and Review Technique). The term PERT is often used to refer to a network diagram. However, it is really the formal name of an estimating technique that used a weighted average of three numbers to come up with a final estimate.
Using the PERT technique, if you are asked to estimate the effort required to complete a project or an activity, you would start with three estimates – the most pessimistic (P) case when everything goes wrong, the most optimistic (O) case when everything goes right, and the most likely (M) case given normal problems and opportunities. The resulting PERT estimate is (O + 4M + P)/6. For example, let’s say you estimate a piece of work to most likely take 10 hours. The best case (everything goes right) is 6 hours. The worst case (everything goes wrong) is 26 hours. The PERT estimate is (6 + 4(10) + 26)/6. The answer is 72/6, or 12 hours. Notice that the number was pulled a little toward the far extreme of the pessimistic estimate, but not by much, since the result is still weighted heavily toward the most likely value.
Parametric Modeling. In this technique, a pattern must exist in the work that allows you to use an algorithm to drive the overall estimate. For instance, if you know that you can build one mile of flat one-lane highway for one million dollars, you should be able to easily calculate an estimate for ten miles of flat four-lane highway (40 million dollars). Or, if you are asked to create 40 new reports, first estimate the effort for an ‘average’ report (perhaps the average of a small, medium and large report). Then multiply the average effort for a report by 40 for the final estimate.
Timeboxing. This is a way to set one of the estimates to be within a certain parameter. This can usually be accomplished by focusing on one or both of the other aspects of the “triple constraint”. Usually when you apply the timebox technique you are forcing the project to be completed by a certain deadline. You then have to focus on the cost and scope aspects of the triple constraint so that the timebox date can be met.
For example, let’s say you create a schedule and it looks like you will complete the project in nine months. However, your sponsor tells you the project must be completed within seven months. The seven month deadline becomes the “timebox” within which the project must be completed. To hit this date you will have to apply resources faster than anticipated. You may also need more resources so that some activities that were scheduled to be completed sequentially can now be scheduled to be completed in parallel. These are examples of situations that will drive up the cost of the project. If you cannot spend enough money to make your deadline date, you may have to eliminate some of the work (scope). You could increase costs, decrease scope or perhaps have a combination of both to meet your dates.
Function Points. Some IT development organizations use function points as a means to provide meaningful estimates of the work required to complete a systems development project. Function points provide a mechanism to determine the relative complexity of an application. The complexity can be expressed as a count of function points. In this way, an application of 1000 function points is generally ten times larger and more complex than an application of 100 function points.
Without getting into a lot of detail, function points look at the size of an application from a user perspective. The users see reports, screens, and maybe data files. They also see business functionality, interfaces to other applications, databases, tables, etc. It makes sense that an application with 80 screens and 20 reports is probably larger than an application with 20 screens and 5 reports. This way of looking at size is independent of the underlying technology and development language. In fact, the application with the smaller number of screens might require more lines of code, but that is no longer relevant in the sizing calculations.
You cannot do function point estimates early in the planning process. However, once you know the number of screens, reports, interface files, transactions, etc., you can create a high-level estimate of total function points. Once you have been counting function points for a few projects, you will start to see the average effort required to complete one function point. After that, it is just a matter of applying the math to determine the total effort required, followed by the duration and the cost.