Effort Estimation – Definition from Trenovision

Effort Estimation

In software developmenteffort estimation is the process of predicting the most realistic amount of effort (expressed in terms of person-hours or money) required to develop or maintain software based on incomplete, uncertain and noisy input. Effort estimates may be used as input to project plans, iteration plans, budgets, investment analyses, pricing processes and bidding rounds

Importance of Effort Estimation

  • Effort estimation is essential at various points of a project life cycle.
  • Effort estimation accuracy depends on available information. Usually, we have less information before you start the project (presales) and have more information while working in the project
  • Most of the times, we can have more accurate effort estimation after requirement analysis.
  • However, initial effort estimation at early project stages is sometimes more important. E.g. you give a financial offer based on early stage of effort estimation.
  • The price you will give will probably bind you for the whole project, so it is important to have a good estimation from the beginning.
  • Although it is obvious that accurate effort estimation is crucial, most of the times people fail to predict well.
  • Approximately 40% of industry software projects that get cancelled due to, partly or completely, failures in effort estimation
  • It is a common fact that the larger the project is, the more essential is to have a good estimation and, at the same time, the more difficult is to have one.
  • Both low effort estimation and high effort estimation cause troubles, and make the project to take longer time to complete.

Effort Estimation Methods

  • There are a number of methods that are used for effort estimation. All of them have pros and cons and all depend on the information the effort estimator has, his experience and his judgement.
  • There are three main approaches for effort estimation.

Expert estimation: An expert on the subject of effort gives judgement on this.
Formal estimation model: Using a proper model you feed the system with proper data to get some       estimation.
Combination-based estimation: The estimation arrives with a mixture of both expert estimation and       formal estimation procedures.

Work Break-Down Structure

  • This seems to be the most common method. Using this method you break down the project to the small parts of works, tasks. Then, you estimate the effort for every task.
    There are three main approaches for effort estimation.
  • This is an Expert Judgement method and the two methods are available.
  • Three point Method : An expert gives 3 estimations for every task. Best Case, Most Probable, Worst Case. The effort for every task is the outcome of a weighted average of the three estimations where the most probable effort gets a higher weight.
  • Delphic Oracle : Here three resources will be asked to prepare the effort estimation. All the efforts derived from three resources will be added and the average of the same will be considered as the effort.

 Analogy/Comparison

  • It is a Formal Estimation Method. With this method we are searching for projects with similar characters and we choose closest to the one we are estimating.
  • Analogy based estimation involves selecting one or two completed projects that most closely match the characteristics of your planned project. The chosen project is then used as the base for your new estimate.
  • Comparison based estimation involves considering the attributes of the project to be estimated, selecting projects with similar attributes and then using the median values for effort, duration etc. from the selected group of projects to produce an estimate of project effort.

Function Point Analysis : It measures the size of a system by calculating the complexity of system functionalities and counting the function points. The count is then used for estimating the effort to develop it. Lines of code needed to develop each function will be considered as a function point.

  • COCOMO (Constructive Cost Models): The models have been widely accepted in practice. In the COCOMOs, the code-size is given in thousand LOC (KLOC) and Effort is in person-month .

where S is the code-size, and a, b are complexity factors.
Effort = a ∗ (K LOC )b .

  • Object Point :It measure the size from a different dimension. This measurement is based on the number and complexity of the objects Viz.. Screens, Fields, Tables, reports and other components. Depends on the requirement we will arrive at the effort for each change software request. code needed to develop each function will be considered as a function point.
  • The following is the example for object method. In this method based on the complexity of the requirement we will arrive the estimation based on the screens,fields, tables,reports..etc..

Best practices of Effort Estimation

  • If you use work break down structure, use both Three Point Estimation and Delphic oracle and see what works better for your organization.
  • Identify the right people to do estimations.
  • Use more than one methods and compare results.
    Keep all your estimates and compare them with actual results in order to calibrate your models.
  • Gather as munch information about the requirements as you can before you start the estimation.
  • Even if you have a requirements document, you may need to decompose the features into smaller features that can be compared to past experiences.