Why are Software
Estimates a Load of $#&%?
(YEAH, THAT’S AN INFLAMMATORY TITLE)
How many of you estimate?
How many of you have been
wrong with estimates?
How wrong?
Days?
Weeks?
Months?
Years?
How wrong?
Days?
Weeks?
Months?
Years?
$
Scope
Quality
What do we do about it?
#noestimates
This isn’t about that…
This is about
WHY?
Ian Garrison
Agile Coach, Engineer, Life Long Learner
◦ MEng ECE
◦ SPC
◦ Agile Midwest Bear
◦ Former radio DJ and farmer
Agile coach with
ian@sketchdev.io
Ian Garrison
Agile Coach, Engineer, Life Long Learner
◦ MEng ECE
◦ SPC
◦ Agile Midwest Bear
◦ Former radio DJ and farmer
Agile coach with
ian@sketchdev.io
Guy who hates wasting time
on things that don’t add value
What is an estimate?
A PRIMER
0
0.2
0.4
0.6
0.8
1
0
0.05
0.1
0.15
0.2
0.25
0.3
0 1 2 3 4 5 6 7 8 9 10
0
0.2
0.4
0.6
0.8
1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
— Central Limit Theorem
The arithmetic mean (and sum) of a sufficiently large number
of iterates of independent random variables, each with a well-
defined expected value and well-defined variance, will be
approximately normally distributed, regardless of the
underlying distribution.
0
0.2
0.4
0.6
0.8
1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
Works great in manufacturing!
• Many units
• Independent failures
• Known, repeatable process
• Complicated problems
Not so great well for software…
• Few units
• Lots of dependencies
• Complex problems
• Pesky humans!
Works great in manufacturing!
• Many units
• Independent failures
• Known, repeatable process
• Complicated problems
Why?
Why?(lots of reasons)
Long tails
Mode < Median < Mean
Mode < Median < Mean
(Most common) (Middle) (Sum / Count)
0
0.2
0.4
0.6
0.8
1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
Mean
Median
Mode
Mode
Mean
Median
Asymmetric Errors
0
0.2
0.4
0.6
0.8
1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
You can’t take less than zero time
You can take infinite time
But you can take infinite time
Just add a buffer!
Let’s get ready to…
double all of our estimates!
Parkinson’s Law
A.K.A. BUFFERS DON’T WORK!
“It is a commonplace observation that
work expands so as to fill the time
available for its completion.”
— C. Northcote Parkinson
Work Padding
Original Work
Procrastination
Polish
Testing
Extra Stuff
Why padding doesn’t work
Padding is a mutually-agreed-upon delusion
No respect for the time
Decreases the sense of urgency
Estimates are too short to begin with
Student Syndrome
The Psychology
of Estimation
OR, WHY PEOPLE CAN’T PREDICT THE FUTURE
Canada
Roger Buehler
Psychology Department Wilfrid Laurier University
Dale Griffin
Department of Commerce University of British Columbia
Michael Ross
Department of Psychology University of Waterloo
Round 1: Predicting completion dates
Who:
A bunch of college students
The question:
When will you be done with your
final paper for the class, with
50%, 75% and 99% confidence?
People underestimate
Ask people when they will be done
13% finish by their 50% confidence time
19% finish by their 75% confidence time
Only 45% finish by their 99% confidence time
That’s pretty bad, but college students
procrastinate more, right?
Maybe we asked the
wrong questions…
Round 2: Setting the right context
Who:
A different bunch of college
students
The question:
Give me your “best guess”
estimate, and then give me your
“best case” estimate
Asking for a realistic
“best guess” scenario
vs. asking for an ideal
“best case” scenario
…produces indistinguishable results
Round 3: Are they thinking about this?
Who:
A different different bunch of
college students
The question:
Estimate how long it will take,
but break it down into tasks
Detailed estimation
When asked to break down work
into more discrete pieces, people
become more optimistic and less
accurate in overall estimation.
“Nothing in life is as important
as you think it is when you are
thinking about it.”
— Daniel Kahneman
Reference-class forecasting
Nobel Prize in Economics, 2002
Estimation is harmful
(GET TO THE POINT ALREADY)
Estimates hide risk…
…give you a false sense of security…
…and distract you
from focusing
on the right
things
What else can we fit?
What should we do next?
It’s easy to game the system
by working on what is easiest,
not what is most important
Goal
Θ
Relevance
How much of your velocity is relevant?
How much is over-production?
Why do we estimate?
Why do we estimate?
Decide whether to invest/undertake a project
Coordinate release timing with Marketing/Customer Support/Sales
Figure out if we need to hire more people
Plan cross-team dependencies
Generate a long-term roadmap based on resource bandwidth
Decide whether to invest/undertake a project
Coordinate release timing with Marketing/Customer Support/Sales
Figure out if we need to hire more people
Plan cross-team dependencies
Generate a long-term roadmap based on resource bandwidth
Why do we estimate?
Fund products and value streams and revisit funding based on ROI
Smaller cycles and improved transparency and coordination
Staff to investment. Ramp-up times are looooooooooooooong
Field cross-functional teams. New architectures to decouple dependencies
Focus teams on single problems/products. Embrace change
Embrace change
Embrace change(it’s inevitable)
Plan for failure
FAILING TO PLAN IS PLANNING TO FAIL…ERRRR WAIT…
Expect the best, plan for the worst,
and prepare to be surprised.
— Denis Waitley
“We don’t have a plan for this”
— Rudy Giuliani
Estimate!
(Yes, I just spent the last
umpteen minutes telling you
how harmful estimation is and
now I’m telling you to estimate)
“With great power comes great responsibility”
— Uncle Ben
and a whole lot of people before that
What estimates are good for…
Relative sizing (it’s bigger than a
breadbox, smaller than a house)
Is something feasible?
Considering the problem and
solution
Guiding milestones
What estimates are bad for…
Determining a ship date (for
anything remotely complex)
Capturing complex cost/benefit
scenarios, like refactoring
Managing scarce resources –
budgets are better
Don’t be evil
My Rules for Estimating
IN A TOTALLY NON-EVIL WAY
Rule #1
Break things down small
Rule #2
Use abstract units for estimates
Rule #3
Don’t waste time on close
Rule #4
Don’t trust an estimate
Rule #5
Estimating ≠ Planning
No tool will manage the project for you
Ian Garrison
ian@sketchdev.io
http://itsnotrocketscience.me

Software estimation is crap

Editor's Notes

  • #13 Let’s start with basic probability
  • #14 Flip a fair coin
  • #18 Reality is more complicated Behind each task is a range of times with a different chance for each one
  • #21 Maxim: You can’t manage what you can’t measure
  • #26 1:6 projects take > 200% over cost and 70% over schedule Hides real costs… Levi’s - $5M project led to $195M write off Healthcare.gov British supermarket chain declared bankruptcy over failed
  • #36 Doesn’t matter so much when you are producing millions of toys Mean error rate works pretty well
  • #37 Matters quite a bit when you have schedule dependencies across teams Size and direction of error causes cascading delays
  • #40 1955 Economist article, that was originally discussing the inefficiency of bureaucracies
  • #43 Managers know there is a buffer and fill it with unplanned tasks, because hey, it was extra time to begin with
  • #45 Since the mid 90s, A group of professors in Canada have produced some interesting research into the psychology of estimation
  • #54 When asked for a realistic scenario, most people envision everything going exactly as planned, with no unexpected delays or unforeseen catastrophes. The same vision as their “best case” – http://lesswrong.com/lq/jg/planning_fallacy
  • #56 Even when they are confronted with visualizing the worst-case scenario.
  • #57 Reference-class forecasting Daniel Kahneman: Thinking Fast and Slow
  • #62 Encourages managing by packing boxes
  • #75 Plans go wrong, and go wrong regularly
  • #76 Generators for electricity – blackout Hospitals & Triage – disease outbreak Crowd control & policing – terrorist attack
  • #81 Budgets are better for managing scarcity
  • #84 Not to get better accuracy in your estimates, but to identify what not to build. YAGNI. Reclaim up some of your time. Get smaller as you get closer to building things.
  • #85 Story points, T-shirt sizes, Jelly beans. People are better able to step back and consider complexity instead of calendar. Of course, once you bring velocity back into it…
  • #86 If you’re deciding between 2 points or 3 points, it’s 3. Move along.
  • #87 As an aggregate they kind of make sense in the short term. Beyond that, it’s the priorities that change, not the tasks. Manage your projects
  • #88 As an aggregate they kind of make sense in the short term. Beyond that, it’s the priorities that change, not the tasks. Manage your projects
  • #92 Actively work to remove the bias of your expectations
  • #93 manage relentlessly, in real-time.
  • #94 If you don’t actively manage scope and priorities, you will miss all deadlines.