BYC Home TechSets Free Articles Harvard Business Offers Career News Job Boards About Us

Software Development Cost Estimation

Philippe Kruchten, University of British Columbia
Total pages: 28
$29.00











Introduction


After some 40 years of research, of trials and errors, the estimation of software development cost remains one of the most vexing problems in software engineering. As most of the development costs in software development are related to the developers, cost estimation literally boils down to "how long and how many people?"

The first approaches that come to mind when speaking about software cost estimation are the parametric models, which emerged in the 1980s and before, such as Barry Boehm�s Constructive Cost Model (Cocomo) or Larry Putnam's Software Lifecycle Management. These models will weigh factors or cost drivers related to the domain, the environment, and the constraints of a project to transform an estimate of size into an estimate of person-months, or team size and duration, hence leading to cost. These models are calibrated using data collected across ranges of projects.

But this leaves a big unknown: what is the size of a project? Size was originally estimated in source lines of code, but rapidly other approaches emerged, using a system of points, less dependent on programming languages and on the actual act of writing code. From analyzing complete requirements, we can deduce a size expressed in function points (Albrecht at IBM and the International Function Point Users Group). A similar approach has led to the definition of use-case points (from G. Koerner, in Objectory and the Rational Unified Process), of object points, of story points (in various agile methods; see Cohn 2006 in the Recommended Resources section). Function points and the more recent full function points have become the object of ISO standards and practical manuals, such as those published by the Netherlands Software Metric Association. The estimation of the various points is often error-prone, tedious, or just impossible to perform early in a project. Often the only possible approach is to gauge a project's size, or even directly its cost, based on "expert judgment": a small group of experienced people will guess a project's size by comparing it to a set of completed projects known to them or their organization, arguing until they reach consensus. In the late 1960s, this approach became known as the Wideband Delphi technique (from the Rand Corp.).

With no systematic and rigorous approach to determining cost, the uncertainty of cost and schedule in a project's early phases is often large, exceeding a factor 2 or 4. However, as more is known about the project and in particular in iterative development, the estimation process can be repeated at regular intervals, converging to an acceptable spread, and the "cone of uncertainty" popularized by Steve McConnell.

In the accompanying articles, Putnam and Ware Myers frame the estimation problem in terms more optimistic than mine. Then Barry Boehm introduces and contrasts the original Cocomo model with the modern Cocomo II. Magne Jorgensen provides guidance on applying expert judgment in practice. Linda Laird looks into the limitation of what we can practically do today and provides many additional resources. These four articles should get you started on your journey to better cost estimates. In the Recommended Resources section, I provide pointers to books, reports, and standards not available online.

Keywords: project management, software cost estimation, software development management



Table of Contents


How Solved Is the Cost Estimation Problem?

Lawrence H. Putnam, Quantitative Software Management
Ware Myers, Contributing Editor

Summary: "The problem of cost estimation has been solved...in principle." In practice, the rather imperious human psyches that oversee software development don�t always get it right.


Safe and Simple Software Cost Analysis

Barry Boehm, University of Southern California

Summary: Simple history-based software cost-analysis methods would be safer if you could identify which cost driver factors were likely to cause critical cost differences and estimate the resulting cost difference if a critical cost driver changed by a given degree. Boehm provides a safe and simple method for doing both of these.


Practical Guidelines for Expert-Judgment-Based Software Effort Estimation

Magne Jorgensen, Simula Research Laboratory

Summary: Simple process changes such as reframing questions can lead to more realistic estimates of software development efforts.


The Limitations of Estimation

Linda M. Laird, Stevens Institute of Technology

Summary: Estimation is a crucial element of software project planning. Unfortunately, there are inherent limitations in the ability to estimate projects accurately due to the inherent uncertainties in software projects.


 

Advertisement




Suggestions