Agile Estimation Methods

 

There are two primary categories of software estimation methodologies. All estimation approaches are either algorithmic (parametric) or non-algorithmic (nonparametric) or a combination of the two. Algorithmic approaches utilize mathematical models or equations, whereas non-algorithmic do not. Estimating provides planners with project timelines and costs.

Development teams use multiple approaches to provide estimates of effort. No single method in software development estimation is considered the best method, and they suggested using a combination of techniques to increase estimation accuracy. Some suggest that it is best to use non-algorithmic approaches such as an expert judgment for projects that have extensive known requirements. The algorithmic approach is the more appropriate choice for projects with many unknowns. However, estimations that use a combination of methods arrive at a more accurate estimate.

Cost estimation is essentially forecasting the expected time, effort, and workforce needed to complete the development of a software task or project. Popular estimation methods used are estimation by analogy, expert judgment, function points, software sizing, and Bayesian methods. Estimates should use simple models, and historical data and should avoid misleading information. Additionally, estimates could be improved by utilizing checklists, structured approaches, and avoiding early estimations.

The philosophy of agile effort estimation is that the people doing the work perform the estimation to gain a more realistic assessment. Different estimation models are better suited to different development models. Distinct characteristics of successful agile estimating include collaboration with product owners, estimations accomplished by a team rather than an individual, and the use of story points for relative measures.