ALTERNATIVES to AGILE
ESTIMATION
NEIL KILLICKneilkillick.com
neil_killick #NoEstimates
AND WHEN
WHAT WILL I GET
ESTIMATING OR GUESSING?
MAKING PREDICTIONS <> PREDICTABILITY
USE *REAL* CONSTRAINTS
KEEP TEAMS TOGETHER
USE XP PRACTICES
● Continuous integration
● TDD/BDD
● Pair programming
● Clean code
DELIVER EARLY & OFTEN
FOCUS ON FLOW
ITERATE *AND* INCREMENT
BACKLOG = OPTIONS
● You will NOT build the whole backlog● Knowing this is empowering
DOES SIZE MATTER?
8Smaller, cheaper (?) awesome feature
Awesome feature
13
FOCUS ON VALUE, NOT COST
● Iterative Funding● Emergent Value
USE A SLICING HEURISTIC
● Explicit policy forbreaking up work,e.g. "A story must have only oneacceptance test"
● Slice stories JIT (e.g. in Sprint Planning)● Can add to "Definition of Ready"
WHY IS THIS BETTER THAN ESTIMATING?
● Explicitly promotes the good practice of splitting work to be done
● Avoids cognitive biases
● Easy to measure effectiveness (e.g. mean & median cycle time within x%)
LITTLE'S LAW IS KEY
CYCLE TIME =WIP /
THROUGHPUT
● Size of premises● No. & size of ovens
CONSTRAINTS REDUCE VARIABILITY AND LIMIT WIP
● No. of chefs & drivers● Delivery radius
● Avg. wait time (hours) =Number of orders in progress (WIP)/ Avg. orders completed in an hour (throughput)
● Assume throughput is 50● Using Little's Law, 0.5 = x / 50● x = 25● We should only take on 25
orders at a time
MAX. 30 MINUTEWAIT FOR CUSTOMERS
WHAT IF WE TAKEON MORE ORDERS?
TAKING ON MORE ORDERS MAY INCREASE WAIT TIME
● Now our WIP is 30 orders● x = 30 / 50● x = 0.6 hours = 36 minutes
● If we can actually deliver60 pizzas per hour, waittime will not increase
LIMIT WIP, LOW CYCLE TIME
WIP limits
CYCLE TIME DISTRIBUTION
● Measure actual cycle time to identify outliers
● Measure mean and median averages
EASY TO MEASURE & SHOW
● Update cycle time at daily standup
● Use coloureddots to representnumber of days
An awesome feature that's taken 4 days
IN SUMMARY
● Real constraints breed creativity● Keep teams together● Use XP practices for technical excellence● Put the "iterate" back into iterations!
IN SUMMARY
● Treat the backlog as options● Focus on value, not cost● Slice work using a heuristic● Limit WIP and measure cycle times
Thank you
NEIL KILLICKneilkillick.com
neil_killick #NoEstimates