Why Software Estimation is so Painful and How It Doesn’t Have To Be Gregg Boer Principal Program Manager Microsoft Corporation Tech Ed North America 2010
Software development is puzzle solving
An estimate is a statement of probability 50% No limit to how long it will take!
Fixing the faucet example How long will it take? 5 hours 10% 3 hours 1 hour 8 hours 50% 75% 90% 1 week 95% Now
Estimates, targets and commitments Now Then Butt on the line!
For each project… what’s not clear At the start… Specific details of the nature of the software to built Details of specific requirements, Details of the solution, project plan, staffing, and other variables … are unclear (at best) Only after the sources of variability are investigate and pinned down, does the variability in the project diminish … and the variability in project estimates can also diminish
The degree of error created by skilled estimators at various points in the Project Figure 1 The Cone of Uncertainty
“If you have another week to work on your estimate, can your refine it so it contains less uncertainty?” Research has found… … the accuracy of the estimate depends on the level of refinement of the software’s definition. The more refined the definition, the more accurate the estimate. Reducing the variability doesn’t happen unless you reduce the variability in the project.
If the project is not well controlled… … or the estimators aren’t very skilled, the estimates can fail to improve The project must be “conducted” in a way that reduces variability.
Reducing variability Defined product vision (including committing to what you will not do)… Defining requirements – including what you are not going to do… Designing the user interface helps reduce the risk of variability arising from misunderstood requirements If the “project” is not defined or the product definition gets redefined, the cone gets wider. NOTE Software organizations sabotage their own projects by making commitments too early in the Cone of Uncertainty.
Cone of Uncertainty PMI estimates | Project Management Institute 0.67x 0.8x 1.0x 0.5x 0.25x 2x 4x 1.5x 1.25x Project cost (effort/cost) Product Definition Detailed Technical Requirements Development Design “Order of Magnitude” (+75%, -25%) “Budget” (+25%, -10%) “Definitive” (+10%, -5%) +100% -50%
Puzzle solving under pressure is difficult
Why do people hate estimating? You are being asked to … Commit to hitting a specific target For a puzzle you have never solved before When you have the least information Then solve the puzzle under extreme schedule pressure, and when the date isn’t met, heads roll That’s why.
Effort Schedule Size Data How long would it take…
What you need… Unit Measure
Some existing sizing methods Lines of Code Function Points Pages of Requirements Screens or Web Pages
Story Points (Break down Features into user stories) Priority Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery
Team work! Everyone gets a deck of cards Planning Poker 1 Product Backlog – User Stores 2 3 5 Log in 8 Priority 13 Customize landing page 20 40 100 Sign up for delivery ∞ Cancel delivery
Calibrate story points Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery Completed User Stories Add customer View customer account Log history entry Block account 5 Priority
Team members estimate the user story and Team members share their estimates Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery Completed User Stories Add customer View customer account Log history entry Block account Priority 1 5 8
Team members estimate the user story and Team members share their estimates Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery Completed User Stories Add customer View customer account Log history entry Block account 5 8 13 Priority
Team members estimate the user story and Team members share their estimates Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery Completed User Stories Add customer View customer account Log history entry Block account 5 8 13 Priority
Team members estimate the user story and Team members share their estimates Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery Completed User Stories Add customer View customer account Log history entry Block account 5 8 13 Priority
Team members estimate the user story and Team members share their estimates Product Backlog – User Stories Log in Customize landing page Cancel delivery Sign up for delivery Sprint Backlog 2 weeks 5 8 13 Priority
Effort Schedule Size Data How long would it take…
Average = 9.5
Effort Schedule Size Data How long would it take…
? We need this in 6 months! User Stories 100 story points Now Then Data says 10-12 months Butt on the line!
Advantages of Story Points Simple Quicker feedback loops Team A story points≠ Team B’s story points
What visibility do you have? Product Definition Detailed Technical Requirements Detailed Development Design
What value does the estimate have? Visibility
Types of estimators Optimist Padder Pessimist Cynic Pleaser
Those asking for the estimate Money Bags Intimidator The End is Near! Doomsayer
Emotion runs wild The End is Near!
The investment matches the value
Expectations based on visibility Product Definition Detailed Technical Requirements Detailed Development Design
Re-estimate when there is more information
Is it an estimate or a commitment? Now Then Butt on the line!
Estimating: Waterfall Project What you need – the process: Information required: Approved Business Requirements Multiple people to estimate separately, then meet to review, revise Apply Cone of Uncertainty applied: (-50%, +100%) Estimate only Re-estimate after Detailed Requirements Phase
Suits vs. Shirts Ask for what they want More senior Good negotiator Determine what’s possible More junior Good with puzzles
Suits vs. Shirts What’s the Common goal? Now
Present in ranges Mar 1 Now Then January - April
Advice For every estimate, demand appropriate investment Show your homework – done collaboratively Stand firm