It is important that you do not rely on a single estimation method for a project. Using a combination of both micro and macro estimation techniques has proven to give the most accurate results. In addition, a formal risk assessment is an essential project estimation prerequisite.
Practical Software Project Estimation 3rd edition (McGraw-Hill), includes details and examples of the following three macro-estimation techniques:
Estimating using equations
One technique for software project estimation involves the use of regression equations. These equations allow you to calculate an estimate for a particular project metric such as effort or duration by simply inserting the calculated, or estimated, size of your project into the appropriate equation.
This estimation technique is commonly used to produce indicative, or "ballpark" project estimates early in the life of a project. This technique is not sufficiently accurate to produce an estimate that could be relied on for quoting or business case requirements. A "ballpark" estimate can be used for an early indication of whether a project idea is feasible, or when you are short of time and detailed information.
The ISBSG has produced sets of regression equations using the data in the ISBSG Repository. These equation sets are published in the Practical Project Estimation Toolkit. You can use these equations to calculate the following project metrics:
- Project Delivery Rate (person hours per fsm unit)
- Effort (person hours)
- Duration (elapsed hours)
- Speed of delivery (fsm units delivered per elapsed calendar month)
Equations are provided for:
- Platform, (Mainframe, Mid-range, PC & Mixed)
- Language Type (3GL, 4GL & Application Generator)
The combination of Platform and Language Type
It is easy to use the ISBSG equations. Having selected the appropriate equation from the tables provided, you insert the functional size of your project and/or the maximum team size, to produce your estimate.
Estimation using comparison
Estimation using comparison allows you to achieve more detailed estimates than can be gained using regression equations. Estimates using comparison are aligned more specifically to the attributes of the project being planned rather than being based on those of the "average" project in the ISBSG repository.
Estimation using comparison involves a technique based on comparison of your planned project with a number of projects in the ISBSG repository that have similar attributes to the planned project.
Comparison based estimation involves considering the attributes of the project to be estimated, selecting projects with similar attributes from the ISBSG Repository then using the median values for effort, duration etc, from the selected group of projects to produce an estimate of project delivery rate and speed of delivery, and consequently project effort and duration.
The steps are as follows:
- Define the platform applicable to your project and identify that subset of ISBSG data using the ISBSG data on the Estimating, Benchmarking and Research CD.
- Define the other attributes of the project to be estimated, (eg Language, tools etc).
- Search the identified sub set of ISBSG data for projects with the same attributes. (There is a tool on the Toolkit CD that does this search for you).
- For each of the planned project's attributes, obtain the median project delivery rate and speed of delivery for all the projects in the ISBSG Repository exhibiting that attribute.
- Determine the average of the medians of the project delivery rate and speed of delivery.
- The result is your estimate.
Because the resulting values are aligned to the specific attributes of the project to be estimated, they are better estimates of that project's project delivery rate and speed of delivery than the values obtained from the equations that reflected the 'average' project in the database.
Estimating using analogy
Analogy based estimation is another technique for early life cycle macro-estimation. Analogy based estimation involves selecting one or two completed projects that most closely match the characteristics of your planned project. The chosen project(s), or analogues, are then used as the base for your new estimate. The ISBSG Data Portal can be used to select a suitable analogue.
Analogy based estimation differs from the comparison based estimation above, in that comparison based estimation uses the medians from a group of similar projects. Analogy operates with one, or perhaps two past projects selected on the basis of their close similarity to the proposed project. Comparing a planned project to a past project is commonly used in an informal way when "guesstimating", consequently it is a familiar technique to the practitioner.
Estimating software project effort by analogy involves a number of steps:
- Establish the attributes of your planned project, (eg size, language type, etc.)
- Measure or estimate the values of those project attributes.
- Search the ISBSG repository for a project that closely matches the attributes of your planned project. (There is a tool on the Toolkit CD that does this search for you).
- Use the known development effort from the selected project, (analogue), as an initial estimate for the target project
- Compare each of the chosen attributes, (size, platform etc.,).
- Establish or adjust the initial effort estimate in light of the differences between the analogue and your planned project.
It is very important that you use your judgment to exclude inappropriate analogues and not be tempted to adopt a "likely" analogue without due care.
Purchase Practical Software Project Estimation 3rd edition (2010 McGraw-Hill)