Often referred to as the “black art” because of its uncertainty and complexity, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward—once you understand the art of creating them. There are a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency and software process improvement.
Software researchers and practitioners have been addressing the problems of estimation for software development projects since at least the 1960s. Most of the research has focused on the construction of formal estimation models. The early models were typically based on regression analysis or mathematically derived from theories from other domains. Since then a high number of model building approaches have been evaluated, such as approaches founded on case-based reasoning, classification and regression trees, simulation, neural networks, Bayesian statistics, lexical analysis of requirement specifications, genetic programming, linear programming, economic production models, soft computing, fuzzy logic modeling, statistical bootstrapping, and combinations of these models.
The perhaps most common estimation products today, e.g., the formal estimation models COCOMO and SLIM (Software Lifecycle Management) have their basis in estimation research conducted in the 1970s and 1980s. The estimation approaches based on research conducted in the 1970s and 1980s, but are re-appearing with modified size measures under different labels, such as “use case points” in the 1990s and in the 2000s.
It’s easy to estimate what you know. It’s hard to estimate what you know you don’t know. It’s very hard to estimate things that you don’t know you don’t know. Formal estimation models not tailored to a particular organization’s own context, may be very inaccurate. Use of own historical data is consequently crucial if one cannot be sure that the estimation model’s core relationships are based on similar project contexts.
SLIM-Estimate helps you estimate the time, effort, and cost and determine the best strategy for designing and implementing your software or systems project.
