This document provides an overview of forecasting techniques using cumulative flow diagrams (CFDs). It discusses how to collect initial data by breaking down products into epics and stories. The key points are:
- Collect lead time data for the first 11 stories
- Create a CFD to visualize work in progress
- Use the 15th and 85th percentiles to set a forecast range
- Over time, the forecast will settle as more data is collected
- Focus on the angle of the forecast line to understand delivery rate
4. We often talk about estimates as if
they are something meaningful
We normally mean forecast when we
say estimate
Forecasts arent guesses
5. Solve x and y where:
y = x2 - 5x + 7
y = 2x + 1
Maths is our friend (honest)
Maths often gets a bad rep
We often think of complex things we
had to learn from first principles at
school
You dont need to understand the
engineering to be able to drive a car
Its a good idea to have an expert
on hand when the engine needs
fixing
6. The problem with Disneyworld
Whats the downside of
Disneyworld for guests?
Theres an App for that
It uses historic data and the
Travelling salesman problem
The right maths in the right place
Longest Disney queue Ive stood
in was 15 minutes
queues
7. Gameshows?
The Monty Hall Problem
drives maths undergrads mad
3 doors, one prize
What are the odds you pick the
right door?
33%
What if Monte removes a
losing door? What are your
odds now?
Should you change your
choice?
8. Agreeing terms
PRODUCT A service that makes
sense to a customer
EPIC a big story. Too big for a team
to finish in a fortnight
STORY a single unit of work that
finishes in between 2 and 9 days
14. Then this usually happens
We get an Expedite work item to deal with!
15. Back to sanity
We could finish epic 1s 4 stories, then the next epic of product 1 That way we
always finish something valuable rather than showing progress on lots of things
17. Step one - Workshop
Run a workshop to
break down your
initial product into
epics
18. Step two
Break down the first 5 epics into stories
Count the stories in each epic
Ignore the middle 3 numbers
Assume the Biggest and Smallest
represent the range
Assume the mid point of the range is
the average number of stories per epic
X X X X XX
Fewest stories Most stories
19. Step three get to work!
Measure the Lead Time to
complete each of the first 11
stories.
Initial data gathering is done!
You can also use the 85th
Percentile as your story SLA
KEEP
CALM
AND
START
WORK!
20. Graph time
You now have enough data to draw a
Cumulative Flow Diagram (CFD).
Number of stories on Y axis against
date on the X axis
Shows To Do, Doing and, Done
Plot a cone of certainty using 15th and
85th Percentiles
22. Lets look at this over time
What follows is a time-lapse of the CFD updating daily
Notice the first few days, there isnt enough data to forecast
See how quickly the data settles the forecast down
Focus on the angle of the black dotted line
The sideways movements are due to where the line starts, its
the angle that is important the delivery rate.
Ready?
Lets go!
101. CFD Forecasting Key Points
Always use ranges, not individual dates
Make it visible
Teach people how to read it
The truth is the truth.
This makes it visible, undeniable and
non-negotiable
Moves the conversation on to business
decisions
This is real data from a real development
team
102. Frequency chart
85th %ile
Lead time frequency chart will show YOUR
Weibull distribution
Use this to help decide when to start time
bound stories
103. Where do I start
Go to github.com/kanbandan
Click on PredictiveCFD
Download the Excel workbook
Make yourself a new copy and open the workbook
You need to play with 2 sheets
Setup
On The Board
104. Setup sheet
I used the standard Excel formatting for Input cells
You can only change the salmon coloured cells
Blank out the two dates hereSet this date to the first
date of your delivery
Set this dropdown to 11
Set to your work item types
105. On the Board This is all of the data for
the sample sheet
106. On the Board Clear it off and start
adding your stories
No gaps in dates entered
My favourite cheat formula
=IF(ISNUMBER([@[Ready For Demo]]),[@[Ready For Demo]],"")
(If the cell to my right is a number, show it here too. If not show a blank cell here)
Lets you skip columns you dont want to use
Remember weighting of 1
107. And thats it
You can now look back in wonder at your wonderful
Cumulative Flow Diagram
Lead Time Frequency Chart
108. Why it all works
Explaining the magic numbers (just in case you don't trust me)
109. Let's talk WWII tanks
The Panzer V was a big
heavy tank. It had better
armour, range and
accuracy than the
Sherman.
The Allies needed to
know how many were in
France to plan D-Day
110. How many tanks?
Eisenhower asked both Military
Intelligence and the Bletchley Park
Boffins to work on it
This is known as
"The German Tank Problem"
MI BPB
June
1940
1000 169
June
1941
1550 244
Aug
1942
1550 327
Real
122
271
342
111. Maths beats estimates
So do we need to do lots of
maths?
Good news - you don't.
There IS a formula, but I'm not
going to bother you with it today.
112. The answers
With 5 samples you are 12.5%
likely to find a bigger value and
12.5% likely to find a smaller
value than your existing range.
75% chance within range
With 11 samples you make that
90% chance inside range, 5%
above and 5% below.
113. Putting it to use
It works for:
tank gearbox serial numbers
story sizes
or even dating partners
114. Why not just estimate?
How do you weigh something big on
bathroom scales?
Cut it up and weigh all the small
parts?
The problem is the tolerance
cumulates and makes the
measurement so inaccurate its
useless
200 days 賊 120 days isnt much use to us
115. Should we stop estimating?
Estimates are useless,
estimation is essential
The benefit of whole team
estimation is the sharing of
tacit knowledge, just before working on the
thing were talking about.
It deliberately introduces conflict
No groupthink
116. Getting started
all you need is:
a date stamp
(or a pen)
a spreadsheet
(or some graph paper)
https://github.com/kanbandan/PredictiveCFD