Abstract:
Nearly every software development project starts with one question: "How much is this going to cost?" Want to learn a powerful 4 step, tactical approach to budgeting that gives you the confidence to answer this question well and that takes 20% of the time than estimating? Read on.
The Problem
Product managers and stakeholders are constantly deciding, “Should I build this?”, "How big a team do I need?", “Which features should I build next?”, "How long will this take" or "What will I get by X date?" Knowing whether a project is going to take a few weeks or several months is a big factor. But estimating software projects is hard. You're trying to predict the future. Realistically, teams will usually be off by 40% to 50%, maybe even 100% or 200% (http://bit.ly/1yGeybG). And estimating takes time: even the lightest-weight Agile processes take several hours...sometimes even days or weeks. Finally, detailed overly-specific estimates end up restricting creativity. In the end, paying a lot of time for poor estimates that helped lead to the #noestimates movement, with teams refusing to do any estimates up front.
The Truth
Most people know estimates aren’t perfect, but they’d still like to have some sense of scale. “Are we talking days, weeks or months?” is often enough to make a good business decision. After all, a set of features might sound good if it’s 1-3 weeks, but might not be worth it if they’re 1-3 months.
The truth is: It's still the responsibility of the technical team to provide these estimates. Why? Because technical teams are the ones that have the most relevant knowledge to answer the question.
The Solution
We’ve got a powerful solution. For strategic and high level decisions: Stop estimating, start budgeting. We walk you through a tactical, 4 step solution that you can use in your job today to budget both new projects as well as ones that are in progress. We will show you how to fit the process to the decision, doing just enough estimating to satisfy the business side. We will also show you how to present your estimate as a range of outcomes so that you can reinforce the “inexactness” of the estimating process.
4. Choose Your Own Adventure
A. T-Shirt size until all epics have stories
with estimates
B. Planning Poker
C. #noestimates
D.Estimate the epics
stride.nyc
5. Choose Your Own Adventure
A. T-Shirt size until all epics have stories
with estimates
B. Planning Poker
C. #noestimates
D.Estimate the epics
stride.nyc
16. If you can’t identify which
decision you are making,
estimating AND budgeting are
both a waste of time.
stride.nyc
17. Requirements for a Decision
1. Two or more realistic alternatives
2. Uncertainty
3. Potential negative consequences
4. A decision-maker
*From: How to Measure Anything
stride.nyc
19. Choose Your Own Adventure
A. T-Shirt size until all epics have stories
with estimates
B. Planning Poker
C. #noestimates
D.Estimate the epics
stride.nyc
21. Choose Your Own Adventure
A. T-Shirt size until all epics have stories
with estimates
B. Planning Poker
C. #noestimates
D.Estimate the epics
stride.nyc
24. stride.nyc
Fermi Decomposition: How many piano
tuners are there in NYC?
Uncertain Variable Guess
How many people in NYC 10 million
Does every person own piano No
How many families in NYC 2 million
% families own piano 1/20
So, how many pianos 100,000
25. stride.nyc
Fermi Decomposition: How many piano
tuners are there in NYC?
Uncertain Variable Guess
# times piano tuned per year 1
# pianos 1 person can tune in 1 day 4
# working days per year 200
1*4*200 800
100,000/800 125
26. Exercise 1: Fermi Decomposition
How many people around the
world will get drunk today?
To Do:
1. Identify the uncertain variables
2. Guess the answer
stride.nyc
30. Online Book Store:
Fermi Decomposition
stride.nyc
3-8 weeks3-10 weeks 5-15 weeks6-30 weeks
By Title 1-2 weeks
By Author 1-2 weeks
Within Book 4-16 weeks
X
18
33. Choose Your Adventure
A. Go home, wait by the phone,
hoping the CEO makes a decision
next week.
B. Help Acme Co figure out the ROI
for the project.
stride.nyc
34. Choose Your Adventure
A. Go home, wait by the phone,
hoping the CEO makes a decision
next week.
B. Help Acme Co figure out the ROI
for the project
stride.nyc
36. Choose Your Adventure
A. Go home, wait by the phone,
hoping the CEO makes a decision
next week.
B. Help Acme Co figure out the ROI
for the project
stride.nyc
40. Outcomes
We are building an online bookstore so
that:
A. We can spend $400k (cost)
B. We can craft 1M lines of code
(output)
C. We will sell X books per year
(outcome)
stride.nyc
41. Outcomes
We are building an online bookstore so
that:
A. We can spend $600k (cost)
B. We can craft 1M lines of code
(output)
C. We will sell X books per year
(outcome)
stride.nyc
44. Exercise 2: Fermi Decomposition
How much profit will online
bookstore make in 2016?
To Do:
1. Identify the uncertain variables.
(Do not do take guesses at
answers.)
stride.nyc
46. Exercise 2: Uncertain Variables
stride.nyc
Uncertain Variables
Number of customers/year
Avg Purchases per customer per year
# of books per purchase
Gross Margin per book
49. How: Ranges
Why?
• People are better at approximating a
range than 1 number
• Once you have a set of ranges, you
can see which are the largest
stride.nyc
50. 90% Confidence Range
Uncertain Variables 90% Confidence Range
Number of customers/year (thousands)
Avg Purchases per customer per year
# of books per purchase
Gross Margin per book
stride.nyc
51. 90% Confidence Range
Uncertain Variables 90% Confidence Range
Number of customers/year (thousands) 1 6
Avg Purchases per customer per year 0.5 3
# of books per purchase 1.5 3.5
Gross Margin per book $3 $33
stride.nyc
Largest Range = biggest uncertainty
53. Exercise 3: Probability Calibration
Question
• 2. In what year did Sir lsaac Newton
publish the Universal laws of Gravitation?
• Give an upper bound and lower bound to
each question where the answer lies
between those bounds 9 out of 10 times.
• Hint: Focus on what you know.
• Some answers have decimals.
stride.nyc
56. Exercise 4: Calibration Tricks
• What is the average weight in tons of
an adult male African elephant?
stride.nyc
57. Reverse the Anchoring Effect
1. Start with Ridiculous Extremes
stride.nyc
5 lbs 1 Billion lbs
2. Keep narrowing until it passes the “absurdity”
test
67. Monte Carlo – Book store
Uncertain Variables
90% Confidence
Range
Number of customers/year
(thousands) 1 6
Avg Purchases per customer
per year 0.5 3
# of books per purchase 1.5 3.5
Gross Margin per book $3 $33
stride.nyc
$144K $180K
Simulation
1
Simulation
2
4 1
2 3
3 2
$6 $30
68. Exercise #5 – Monte Carlo
Simulation
stride.nyc
Roll: 5, 6, 7, 7
Scenario: 2.5 x 1.5 x 2.5 x $18 = $169
72. Reduce Uncertainty
• Lean Startup
• Do experiments to reduce uncertainty of
gross margin per book ($3 - $33 now)
• Focus on a niche (rare books, ebooks)
• Spike Solutions
stride.nyc
73. Online Bookstore
Decision
Should we green-light this project?
Target Outcome:
2 Year ROI
90% Confidence
Cost: $242k - $475k
Gross Profit/Year: $50k - $750k
stride.nyc
74. Choose Your Own Adventure
A.CEO green-lights project
B.CEO can’t decide, needs more
data
stride.nyc
75. Choose Your Own Adventure
A.CEO green-lights project
B.CEO can’t decide, needs more
data
stride.nyc
79. My Offer To You
You Want
• 30 minute
Google Hangout
I Want
•Intros - Agile
software
development
teams embed &
co-locate in
North East
stride.nyc
debbie@stride.nyc
Now we’re going to do an exercise that shows us how to make estimates for any range of values. And it will show us that making accurate range estimates is a skill, one that humans can get good at.
This is important, because for many topics, we have trouble knowing exact answers. But you always know something. And by demonstrating how much - or how little - we know about a topic, we can make better decisions.
We’ve given you a list of 10 questions: here is one of them. Some may seem easy to you, but chances are you don’t know the exact answer. Some may be very difficult for you. But that’s OK. The idea is that even if it is hard to answer, you know something about it.
You need to give an upper bound and lower bound where you think the answer will in that range 9 times out of 10.
Here’s a hint: Focus on what you do know. For example, you might not know the exact date for Netwon, but you probably know that Newton wasn’t around in Ancient Greece or in the 21st century.
Seco
So how did people do?
Keep in mind, this is a small sample size. Usually, what you’ll find is that people are over-confident. Many people get 5 or 6 right. That means your ranges were too small and you thought you know more than you did. Our goal is to eliminate those biases.
As I said before, this is a skill you can get better at. So we’re going to show you a couple of tricks to help you overcome your biases. Here’s a new question.
One thing to do is to reverse the Anchoring Effect. Often, we start by making a specific guess about how much an elephant weights. Once you do that, you have a tendency to anchor your range around that guess. That leads to an overconfident guess.
Instead, we’ll reverse it and start with a ridiculous extreme. We know with 100% confidence that an elephant weighs between 5 and a billion pounds. Once we have that, we can start narrowing our range, until it passes the absurdity test. We know 10lbs is ridiculous, 50 lbs, still ridiculous. But at some point we’ll hit a number that doesn’t sound absurd. Likewise on the other end of the range. A million pounds. And so on.
Take a minute and try that.
This may be the most important tip. It’s called the equivalent bet. Let’s say someone gives you a choice. First, you could spin this wheel. If you get it in the gray area, you win $1000. 9 out of 10 times, you will. But if you hit the blue section, you get nothing.
Or, you can choose option B, which is if your answer is within your upper and lower bound, you win $1000. It’s your choice.
If it’s easy to pick one or the other, that means your range is off. Make an adjustment to your range and try again. Once you get to a point where it feels like the bets are equivalent, where you have trouble choosing between the two, then you can be confident you’re at 90%.
How did we do?
So how did we do? Raise your hand if it was outside your range. If you were wrong.
One of the most important things to getting better at this is practice. In the book and on the website are more questions and other types of exercises.
Now we’re going to actually make use of these ranges. Even if we get good at ranges, we have a problem. It’s hard to add them up to come up with an answer. That’s why people tend to guess specific numbers. You can do the math.
That’s where Monte Carlo simulations come in. A Monte Carlo Simulation is a tool that helps as add together our ranges to come up with another range.
For example, here is one you might already know. In this case, we have two variables, each of which is a six-sided die. Each die is between 1 and 6.There are 36 total combinations of the two dice, so we can map out the probabilities. There’s only one way to get a 2, so that’s a one in 36 chance. But there are 6 ways to get a 7, so that’s our most likely roll at a 6 in 36 chance, or 1 in 6.
But it’s random. If we simulate the dice, of course on any one roll you can get anything between 2 and 12. Here we rolled the dice 10 times in an Excel simulation. You can see the rolls are a little uneven. Many haven’t been rolled at all.
As we get to 50 rolls, it starts to fill out. But still doesn’t look like our true odds, like our triangle.
At 5000 rolls, it has pretty much evened out over time. Here we see the Law of Large Numbers at work. Given enough simulations, we can get an answer for how a set of random variables will play out.
But instead of using this simple example of 2 variables, we can use the 4 variables from our bookstore equation. We can pick numbers at random for each of these 4 and give a result. For example, if at random we simulate 4 customers, 2 purchases, 3 books and $6, we would get $144K. In a second simulation, I would get different random variables and a different result.
Who knows? Each of these could be how the bookstore plays out if we actually build it. They’re both reasonable answers given what we know. We want to find out, what are all the possible outcomes.
Now it’s your turn to try this. We’re going to turn you into our computer. If you look at your piece of paper, you can see the Random Number Generator we setup for this. Let’s say you roll a 5, 6, 7 and 7. You would get 2.5 x 1.5 x 2.5 x $18 which = $169 (The answer in your paper is wrong due to a last minute edit.) That’s one simulation.
Here’s a result of running this simulation in excel 5000 times. You can see it’s a pretty wide range. That’s because we have some fairly uncertain variables. But still, we can be confident it’s within $50 to $750K.
We also did the cost side, back from the rough estimates we made before. This was using our own tool that we built called Ballpark. Here you can see that the cost is going to be between $250K and $450.
You can run these simulations in a few different ways. There are tools out there. But often, the easiest way is to do it in Excel. There are plenty of tutorials out there. For estimating project cost, as I mentioned you can use Excel.