Software Estimation: Demystifying the Black Art

book by Steve McConnell (Microsoft)

presentation by Matthew Stills

Vocabulary

  • Estimate - Preliminary evaluation of cost of a project; an opinion-based judgement
  • Target - Statement of a desirable business objective
  • Commitment - Promised deliverable at specific level of quality and on a specific date

 

Take care not to combine these concepts! There are fundamental differences between estimation and planning.

Is the business really looking for an estimate?

  • When asked to provide an estimate, determine whether you're supposed to be estimating or figuring out how to hit a predefined business target.
  • Single point numbers are usually not true estimates.
  • When you see a single point "estimate", ask whether the number is truly an estimate or whether it's really a target? 
  • Is the probability of the estimate 100%? Probably not. Single point estimates are not meaningful without an accompanying probability.
  • When estimating, creating a range of numbers with different probabilities can be more beneficial to business planners.

What makes a good estimate?

  • Estimation is often treated purely as a predictive activity. This is a mistake.
  • Once a commitment is made on the basis of an estimate, it is done to control a project towards a target.
  • After a project begins, the estimate will be invalidated as unforeseen events occur.
  • Therefore it is impossible to assess whether a project was estimated accurately: the project ultimately delivered is not the same as the project which was originally estimated.
  • Therefore, good estimates cannot be based on their predictive capability (since that is impossible to assess).
  • A good estimate is one that has the ability to support a project's success (realistically).

Estimation's True Purpose

  • <Suitcase analogy>
  • Project planners usually find a gap between business targets and estimated schedule/cost.
  • If the gap is to large, the project's targets must be reconsidered.
  • Do not bend estimates to meet targets. It may be necessary to do the inverse.
  • The primary purpose of estimation is to determine whether a project's targets are realistic enough to allow the project to be controlled to meet them.
    • Will the clothes you want to take on your trip fit into the small suitcase or will you be forced to take a larger one?
    • Can you take the small suitcase if you make minor adjustments?

Defining a "good estimate"

A good estimate is an estimate that provides a clear enough view of the project reality to allow the project leadership to make good decisions about how to control the project to hit its targets

Estimating Software Projects

By Matt Stills

Estimating Software Projects

  • 162