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

Made with Slides.com