This slide
Intentionally
left blank
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 2
Slide 2 text
How far do you
live from an
airport?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 3
Slide 3 text
I live
!"
minutes from one
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 4
Slide 4 text
If I'm in a car
And the weather is good
And it's not rush hour
And I don't blow a tire
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 5
Slide 5 text
Failing any of these
makes my trip
longer
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 6
Slide 6 text
This talk is
20 30 minutes
(give or take 10)
Noel Rappin, Table XI (@noelrap)
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 7
Slide 7 text
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 8
Slide 8 text
I am an
idiosyncratic
crank
about estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 9
Slide 9 text
Are software developers
uniquely
bad at estimates?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 10
Slide 10 text
Ever done a
home remodel?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 11
Slide 11 text
Big Dig
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Final cost:
$21.93 billion
And counting...
!!!!!!!!!!!
!!!!!!!!!!!
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 14
Slide 14 text
It's not just
our
problem
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 15
Slide 15 text
What can we
do
about it?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 16
Slide 16 text
What if we
didn't
estimate?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 17
Slide 17 text
What if we just
did stuff
and
got paid?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 18
Slide 18 text
Sure, I'll tear up your
kitchen.
And bill you when I'm done.
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 19
Slide 19 text
Customers reasonably
expect
estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 20
Slide 20 text
Estimates
are
Communication
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 21
Slide 21 text
Communication
with
$$$
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 22
Slide 22 text
Estimates communicate:
investment
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 23
Slide 23 text
Estimates communicate:
progress
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 24
Slide 24 text
Estimates communicate:
scope
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 25
Slide 25 text
Bad Estimates
communicate:
Unrealistic
expectations
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 26
Slide 26 text
Bad Estimates
communicate:
Way too much...
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 27
Slide 27 text
So, let's just do
good
Estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 28
Slide 28 text
Estimating at the
beginning is the
worst
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 29
Slide 29 text
Like guessing time to the
airport if you don't even
know where the airport is
Or if you even need to fly...
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 30
Slide 30 text
How can we estimate
Effectively?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 31
Slide 31 text
Even when we know
Nothing
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 32
Slide 32 text
A quick sidebar of
agile terms
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 33
Slide 33 text
Feature / Story
The unit of work in a project
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 34
Slide 34 text
Iteration
The unit of planning in a project
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 35
Slide 35 text
Point
The size of a story
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 36
Slide 36 text
Velocity
Points per interation
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 37
Slide 37 text
Kind of a theory of
estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 38
Slide 38 text
Estimating projects
vs.
Estimating features
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 39
Slide 39 text
Nobody really
cares about estimating
features
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 40
Slide 40 text
They only care about when
users can use stuff
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 41
Slide 41 text
Feature estimates are only
useful to get you to project
estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 42
Slide 42 text
Estimates are
estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 43
Slide 43 text
Estimates are
probabilistic
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 44
Slide 44 text
Chance of rain:
50%
☔
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 45
Slide 45 text
This is a
! point
story
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 46
Slide 46 text
What makes
an estimate
wrong?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 47
Slide 47 text
Bad
assumptions
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 48
Slide 48 text
Misunderstanding the
problem
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 49
Slide 49 text
Scope Creep
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 50
Slide 50 text
Unknown
complexity
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 51
Slide 51 text
Rework
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 52
Slide 52 text
Developers are
optimists
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 53
Slide 53 text
Sometimes there is
pressure
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 54
Slide 54 text
A lower estimate
doesn't make it
less complex
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 55
Slide 55 text
How to do
better
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 56
Slide 56 text
Uncertanty
Not
Precision
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 57
Slide 57 text
What goes into the amount
of calendar time a
feature takes?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 58
Slide 58 text
Complexity of the task
Skill of the developer
Time on task
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 59
Slide 59 text
We are bad at estimating
time on task
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 60
Slide 60 text
But it tends to be
consistent
over time
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 61
Slide 61 text
Skill of the developer
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 62
Slide 62 text
We're also not that great
at estimating this
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 63
Slide 63 text
And it's
toxic
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 64
Slide 64 text
But it tends to be
consistent
over time
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 65
Slide 65 text
We are pretty good at
estimating
complexity
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 66
Slide 66 text
Which is to say
!
⚪
!
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 67
Slide 67 text
Estimate
complexity
and let
time
sort itself out
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 68
Slide 68 text
The humble
point
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 69
Slide 69 text
Time on task and relative
skill
average out
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 70
Slide 70 text
Which is like basing our
airport estimate on:
Distance to airport
Average speed in the past
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 71
Slide 71 text
Consistency
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 72
Slide 72 text
Of team size
Of story makeup
Of environment
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 73
Slide 73 text
Decomposing the problem
into similar size chunks
helps
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 74
Slide 74 text
But
you need data
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 75
Slide 75 text
The problem of
one-off
estimates
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 76
Slide 76 text
How do I estimate at the
beginning
of a project?
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 77
Slide 77 text
The
worst
way to estimate
(except for all the other ways)
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 78
Slide 78 text
Fake it
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 79
Slide 79 text
Don't fake
knowledge
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 80
Slide 80 text
Fake your
velocity
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 81
Slide 81 text
Don't spend
time
chasing
precision
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 82
Slide 82 text
your output
is a
range
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 83
Slide 83 text
Split the tasks
as best you can
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 84
Slide 84 text
Assign points
1: easy, less than a day
3: has complexity or risk
5: has a lot more complexity or risk
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 85
Slide 85 text
Don't spend a lot of time
assigning points to a single
task
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 86
Slide 86 text
Round
up
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 87
Slide 87 text
At the beginning
(and only at the begining)
You can range estimate
stories
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 88
Slide 88 text
You end up with
Range of points
Say... (100 - 120)
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 89
Slide 89 text
Apply a load factor
(5 - 7 hours per point)
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 90
Slide 90 text
Low points * low factor
High points * high factor
= (100 * 5) - (120 * 7)
= (500 - 840) hours
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Clearly describe the limits
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 93
Slide 93 text
Understand that this will
change
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap
Slide 94
Slide 94 text
You are headed to the
airport together
Noel Rappin, This talk is 20 30 minutes long, RubyConf 2015. http://www.noelrappin.com | http://www.tablexi.com | @noelrap