View
8.337
Download
2
Category
Tags:
Preview:
DESCRIPTION
Clients need to know how much a project will cost. Waterfall development is always late and over-budget. Agile development is done when it's done. You're left with estimates that you know are too low and then you squeeze them anyway. It shouldn't be this way. We'll look at how this happens, early warning signs, ways out and ways of avoiding it in the first place.
Citation preview
Estimation
Or,“How to Dig your own Grave”
Rowan Merewood
Who
Who
● Software Engineer● & Team Lead● at Ibuildings
Who
● Software Engineer● & Team Lead● at Ibuildings
● @rowan_m
Why
Why
● I've seen (& made) mistakes
Why
● I've seen (& made) mistakes
● You can avoid them
Why
● I've seen (& made) mistakes
● You can avoid them
● Make your own
What could possibly go wrong?
Sales create estimates
Sales create estimates
● Use skills correctly
Sales create estimates
● Use skills correctly● Send a dev with sales
Sales create estimates
● Use skills correctly● Send a dev with sales
● If you're sales & dev...
Sales create estimates
● Use skills correctly● Send a dev with sales
● If you're sales & dev...
remember which hat you're wearing
Lone developer creates estimates
Lone developer creates estimates
● It's ok, he's a ROCKSTAR
Lone developer creates estimates
● It's ok, he's a ROCKSTAR
● Independent estimates
Lone developer creates estimates
● It's ok, he's a ROCKSTAR
● Independent estimates
● Or, at least review
Estimate from detailed task lists
Estimate from detailed task lists
● You know it will change
Estimate from detailed task lists
● You know it will change
● Gives misplaced confidence
Estimate from detailed task lists
● You know it will change
● Gives misplaced confidence
● Encourages micro-management
Estimate a day as 8 hours
Estimate a day as 8 hours
● 16 hr. task == 2 days
Estimate a day as 8 hours
● 16 hr. task == 2 days(ha ha – you're cute)
Estimate a day as 8 hours
● 16 hr. task == 2 days(ha ha – you're cute)
● You are not a code machine
Estimate a day as 8 hours
● 16 hr. task == 2 days(ha ha – you're cute)
● You are not a code machine
● Even if you are,your team is not
Estimate a day as 8 hours
● 16 hr. task == 2 days(ha ha – you're cute)
● You are not a code machine
● Even if you are,your team is not
● Dev: 6 hr. Lead: 4 hr.
Estimate in hours
Estimate in hours
● Still too much detail
Estimate in hours
● Still too much detail
● Use ¼ days
Estimate in hours
● Still too much detail
● Use ¼ days● ¼, ½, 1, 2, 3 days
Estimate in hours
● Still too much detail
● Use ¼ days● ¼, ½, 1, 2, 3 days
● 1, 3, 5, 7 days
Estimate in hours
● Still too much detail
● Use ¼ days● ¼, ½, 1, 2, 3 days
● 1, 3, 5, 7 days● Larger increments,
larger projects
Just estimate coding time
Just estimate coding time
● Remember your overheads
Just estimate coding time
● Remember your overheads
● Remember team overheads
Just estimate coding time
● Remember your overheads
● Remember team overheads
● Think about dependencies
Estimates as commitments
Estimates as commitments
● Well, yes and no...
Estimates as commitments
● Well, yes and no...
● List and quantify risk
Estimates as commitments
● Well, yes and no...
● List and quantify risk● Estimates != schedule
Waterfall estimates are useless
Waterfall estimates are useless
● Fine, stop calling yourself an engineer
Waterfall estimates are useless
● Fine, stop calling yourself an engineer
● Lots of work in“off-the-shelf” tasks
Waterfall estimates are useless
● Fine, stop calling yourself an engineer
● Lots of work in“off-the-shelf” tasks
● Cone of Uncertainty
Agile means we can't estimate
Agile means we can't estimate
“Yeah, well, you know, that's just like, your opinion, man.”
Agile means we can't estimate
● Over-reaction to Waterfall
“Yeah, well, you know, that's just like, your opinion, man.”
Agile means we can't estimate
● Over-reaction to Waterfall
● Excuse to drop software engineering and just hack it
“Yeah, well, you know, that's just like, your opinion, man.”
Enough mistakes, time for a treat
Help your client understand
● Estimates as a budget
Help your client understand
● Estimates as a budget
● The Holy Triangle● MoSCoW● Kano model
Holy Triangle
Good
Fast
Cheap
Holy Triangle
Good
Fast
Cheap
Scope
Time
CostQuality
MoSCoW
● Must● Should● Could● Won't
MoSCoW
● Must● Should● Could● Won't
Density
Capacity
MoSCoW
● Must● Should● Could● Won't
Density
MoSCoW
● Must● Should● Could● Won't
Density
MoSCoW
● Must● Should● Could● Won't
Density
MoSCoW
● Must● Should● Could● Won't
Density
MoSCoW
● Must● Should● Could● Won't
Density
Kano Model
Kano Model
● Basic functionality● Performance● Exciters
Kano Model
● Basic functionality● Performance● Exciters Exciters
Performance
Basic
High Satisfaction
Low Satisfaction
FeatureAbsent
FeaturePresent
Earn their trust, then get agile
Earn their trust, then get agile
● Low risk, fixed price to start
Earn their trust, then get agile
● Low risk, fixed price to start
● Create a roadmap
Earn their trust, then get agile
● Low risk, fixed price to start
● Create a roadmap
● Move to sprint-based work
Gamble with Planning Poker
Gamble with Planning Poker
● The whole team makes the commitment
Gamble with Planning Poker
● The whole team makes the commitment
● Combines independent estimates and review
And now mistakes during projects
Lose track of time
Lose track of time
● Developers hate time-tracking
Lose track of time
● Developers hate time-tracking
● Automate if you can
Lose track of time
● Developers hate time-tracking
● Automate if you can● Include it in
stand-ups to update the burn-down
Estimate bugs
Estimate bugs
● “Nein, nein, nein! Das ist verboten!”-- @dzuelke
Estimate bugs
● “Nein, nein, nein! Das ist verboten!”-- @dzuelke
● You do not know the size of the problem
Estimate bugs
● “Nein, nein, nein! Das ist verboten!”-- @dzuelke
● You do not know the size of the problem
● Spend 3 days investigating – change 1 line of code
Try to catch up
Try to catch up
● [wo]man up and admit you're wrong
Try to catch up
● [wo]man up and admit you're wrong
● Don't burn yourself or your team out
Try to catch up
● [wo]man up and admit you're wrong
● Don't burn yourself or your team out
● Work overtime and you set a precedent
Skip the review
Skip the review
● Make time to learn
Skip the review
● Make time to learn● Share your mistakes,
so others avoid them
Credits
● All sculpture/photos© Tamra Kohlhttp://www.flickr.com/photos/claylindo/
(Used with kind permission)
● Thank you!
● Photo jiggery-pokery:http://pixlr.com/o-matic/
● Background:http://www.colourlovers.com/pattern/635/Death_Flowers
Recommended