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●    Ive seen (& made)    mistakes
Why●    Ive seen (& made)    mistakes●    You can avoid them
Why●    Ive 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     ...
Sales create estimates           ●               Use skills correctly           ●               Send a dev with sales     ...
Lone developer creates estimates
Lone developer creates estimates●    Its ok, hes a    ROCKSTAR
Lone developer creates estimates●    Its ok, hes a    ROCKSTAR●    Independent    estimates
Lone developer creates estimates●    Its ok, hes 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       ...
Estimate from detailed task lists                 ●                     You know it will                     change       ...
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 – youre cute)
Estimate a day as 8 hours●    16 hr. task == 2 days    (ha ha – youre cute)●    You are not a code    machine
Estimate a day as 8 hours●    16 hr. task == 2 days    (ha ha – youre cute)●    You are not a code    machine●    Even if ...
Estimate a day as 8 hours●    16 hr. task == 2 days    (ha ha – youre cute)●    You are not a code    machine●    Even if ...
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 increment...
Just estimate coding time
Just estimate coding time             ●                 Remember your                 overheads
Just estimate coding time             ●                 Remember your                 overheads             ●             ...
Just estimate coding time             ●                 Remember your                 overheads             ●             ...
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 ris...
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” task...
Agile means we cant estimate
Agile means we cant estimate          “Yeah, well, you know, thats just like, your opinion, man.”
Agile means we cant estimate●    Over-reaction to    Waterfall                       “Yeah, well, you know, thats just lik...
Agile means we cant estimate●    Over-reaction to    Waterfall●    Excuse to drop    software engineering    and just hack...
Enough mistakes, time for a treat
Help your client understand              ●                  Estimates as a                  budget
Help your client understand              ●                  Estimates as a                  budget              ●         ...
Holy Triangle        GoodCheap          Fast
Holy Triangle           Good           Scope        Quality CostCheap             Time              Fast
MoSCoW   ●       Must   ●       Should   ●       Could   ●       Wont
MoSCoW              ●                  Must              ●                  Should              ●                  Could  ...
MoSCoW   ●       Must   ●       Should   ●       Could    Density   ●       Wont
MoSCoW   ●       Must   ●       Should   ●       Could    Density   ●       Wont
MoSCoW   ●       Must   ●       Should   ●       Could    Density   ●       Wont
MoSCoW   ●       Must   ●       Should   ●       Could    Density   ●       Wont
MoSCoW   ●       Must   ●       Should   ●       Could    Density   ●       Wont
Kano Model
Kano Model●    Basic functionality●    Performance●    Exciters
Kano Model●    Basic functionality                        High Satisfaction●    Performance●    Exciters                  ...
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    ...
Earn their trust, then get agile                ●                    Low risk, fixed price                    to start    ...
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  ...
Estimate bugs
Estimate bugs       ●           “Nein, nein, nein! Das           ist verboten!”           -- @dzuelke
Estimate bugs       ●           “Nein, nein, nein! Das           ist verboten!”           -- @dzuelke       ●           Yo...
Estimate bugs       ●           “Nein, nein, nein! Das           ist verboten!”           -- @dzuelke       ●           Yo...
Try to catch up
Try to catch up●    [wo]man up and    admit youre wrong
Try to catch up●    [wo]man up and    admit youre wrong●    Dont burn yourself    or your team out
Try to catch up●    [wo]man up and    admit youre wrong●    Dont burn yourself    or your team out●    Work overtime and  ...
Skip the review
Skip the review●    Make time to learn
Skip the review●    Make time to learn●    Share your mistakes,    so others avoid them
Questions?     ●         Feedback         http://joind.in/6321         (dont make me send the clown)
Credits●    All sculpture/photos    © Tamra Kohl    http://www.flickr.com/photos/claylindo/    (Used with kind permission)...
Upcoming SlideShare
Loading in …5
×

Estimation or, "How to Dig your Grave"

9,144
-1

Published on

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.

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,144
On Slideshare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
71
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Estimation or, "How to Dig your Grave"

  1. 1. Estimation Or,“How to Dig your own Grave” Rowan Merewood
  2. 2. Who
  3. 3. Who● Software Engineer● & Team Lead● at Ibuildings
  4. 4. Who● Software Engineer● & Team Lead● at Ibuildings● @rowan_m
  5. 5. Why
  6. 6. Why● Ive seen (& made) mistakes
  7. 7. Why● Ive seen (& made) mistakes● You can avoid them
  8. 8. Why● Ive seen (& made) mistakes● You can avoid them● Make your own
  9. 9. What could possibly go wrong?
  10. 10. Sales create estimates
  11. 11. Sales create estimates ● Use skills correctly
  12. 12. Sales create estimates ● Use skills correctly ● Send a dev with sales
  13. 13. Sales create estimates ● Use skills correctly ● Send a dev with sales ● If youre sales & dev...
  14. 14. Sales create estimates ● Use skills correctly ● Send a dev with sales ● If youre sales & dev... remember which hat youre wearing
  15. 15. Lone developer creates estimates
  16. 16. Lone developer creates estimates● Its ok, hes a ROCKSTAR
  17. 17. Lone developer creates estimates● Its ok, hes a ROCKSTAR● Independent estimates
  18. 18. Lone developer creates estimates● Its ok, hes a ROCKSTAR● Independent estimates● Or, at least review
  19. 19. Estimate from detailed task lists
  20. 20. Estimate from detailed task lists ● You know it will change
  21. 21. Estimate from detailed task lists ● You know it will change ● Gives misplaced confidence
  22. 22. Estimate from detailed task lists ● You know it will change ● Gives misplaced confidence ● Encourages micro- management
  23. 23. Estimate a day as 8 hours
  24. 24. Estimate a day as 8 hours● 16 hr. task == 2 days
  25. 25. Estimate a day as 8 hours● 16 hr. task == 2 days (ha ha – youre cute)
  26. 26. Estimate a day as 8 hours● 16 hr. task == 2 days (ha ha – youre cute)● You are not a code machine
  27. 27. Estimate a day as 8 hours● 16 hr. task == 2 days (ha ha – youre cute)● You are not a code machine● Even if you are, your team is not
  28. 28. Estimate a day as 8 hours● 16 hr. task == 2 days (ha ha – youre cute)● You are not a code machine● Even if you are, your team is not● Dev: 6 hr. Lead: 4 hr.
  29. 29. Estimate in hours
  30. 30. Estimate in hours● Still too much detail
  31. 31. Estimate in hours● Still too much detail● Use ¼ days
  32. 32. Estimate in hours● Still too much detail● Use ¼ days● ¼, ½, 1, 2, 3 days
  33. 33. Estimate in hours● Still too much detail● Use ¼ days● ¼, ½, 1, 2, 3 days● 1, 3, 5, 7 days
  34. 34. Estimate in hours● Still too much detail● Use ¼ days● ¼, ½, 1, 2, 3 days● 1, 3, 5, 7 days● Larger increments, larger projects
  35. 35. Just estimate coding time
  36. 36. Just estimate coding time ● Remember your overheads
  37. 37. Just estimate coding time ● Remember your overheads ● Remember team overheads
  38. 38. Just estimate coding time ● Remember your overheads ● Remember team overheads ● Think about dependencies
  39. 39. Estimates as commitments
  40. 40. Estimates as commitments ● Well, yes and no...
  41. 41. Estimates as commitments ● Well, yes and no... ● List and quantify risk
  42. 42. Estimates as commitments ● Well, yes and no... ● List and quantify risk ● Estimates != schedule
  43. 43. Waterfall estimates are useless
  44. 44. Waterfall estimates are useless● Fine, stop calling yourself an engineer
  45. 45. Waterfall estimates are useless● Fine, stop calling yourself an engineer● Lots of work in “off-the-shelf” tasks
  46. 46. Waterfall estimates are useless● Fine, stop calling yourself an engineer● Lots of work in “off-the-shelf” tasks● Cone of Uncertainty
  47. 47. Agile means we cant estimate
  48. 48. Agile means we cant estimate “Yeah, well, you know, thats just like, your opinion, man.”
  49. 49. Agile means we cant estimate● Over-reaction to Waterfall “Yeah, well, you know, thats just like, your opinion, man.”
  50. 50. Agile means we cant estimate● Over-reaction to Waterfall● Excuse to drop software engineering and just hack it “Yeah, well, you know, thats just like, your opinion, man.”
  51. 51. Enough mistakes, time for a treat
  52. 52. Help your client understand ● Estimates as a budget
  53. 53. Help your client understand ● Estimates as a budget ● The Holy Triangle ● MoSCoW ● Kano model
  54. 54. Holy Triangle GoodCheap Fast
  55. 55. Holy Triangle Good Scope Quality CostCheap Time Fast
  56. 56. MoSCoW ● Must ● Should ● Could ● Wont
  57. 57. MoSCoW ● Must ● Should ● Could Density ● WontCapacity
  58. 58. MoSCoW ● Must ● Should ● Could Density ● Wont
  59. 59. MoSCoW ● Must ● Should ● Could Density ● Wont
  60. 60. MoSCoW ● Must ● Should ● Could Density ● Wont
  61. 61. MoSCoW ● Must ● Should ● Could Density ● Wont
  62. 62. MoSCoW ● Must ● Should ● Could Density ● Wont
  63. 63. Kano Model
  64. 64. Kano Model● Basic functionality● Performance● Exciters
  65. 65. Kano Model● Basic functionality High Satisfaction● Performance● Exciters Exciters Performance Feature Present Feature Absent Basic Low Satisfaction
  66. 66. Earn their trust, then get agile
  67. 67. Earn their trust, then get agile ● Low risk, fixed price to start
  68. 68. Earn their trust, then get agile ● Low risk, fixed price to start ● Create a roadmap
  69. 69. Earn their trust, then get agile ● Low risk, fixed price to start ● Create a roadmap ● Move to sprint-based work
  70. 70. Gamble with Planning Poker
  71. 71. Gamble with Planning Poker● The whole team makes the commitment
  72. 72. Gamble with Planning Poker● The whole team makes the commitment● Combines independent estimates and review
  73. 73. And now mistakes during projects
  74. 74. Lose track of time
  75. 75. Lose track of time● Developers hate time-tracking
  76. 76. Lose track of time● Developers hate time-tracking● Automate if you can
  77. 77. Lose track of time● Developers hate time-tracking● Automate if you can● Include it in stand-ups to update the burn-down
  78. 78. Estimate bugs
  79. 79. Estimate bugs ● “Nein, nein, nein! Das ist verboten!” -- @dzuelke
  80. 80. Estimate bugs ● “Nein, nein, nein! Das ist verboten!” -- @dzuelke ● You do not know the size of the problem
  81. 81. 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
  82. 82. Try to catch up
  83. 83. Try to catch up● [wo]man up and admit youre wrong
  84. 84. Try to catch up● [wo]man up and admit youre wrong● Dont burn yourself or your team out
  85. 85. Try to catch up● [wo]man up and admit youre wrong● Dont burn yourself or your team out● Work overtime and you set a precedent
  86. 86. Skip the review
  87. 87. Skip the review● Make time to learn
  88. 88. Skip the review● Make time to learn● Share your mistakes, so others avoid them
  89. 89. Questions? ● Feedback http://joind.in/6321 (dont make me send the clown)
  90. 90. Credits● All sculpture/photos © Tamra Kohl http://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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×