Agile Software Estimation


Published on

This presentation discusses the following:
What is an estimate?
What are the factors influencing estimating?
How are agile projects estimated?
How Agile estimation solves common estimation problems?

Published in: Technology, Business
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Ames room is a distorted room that is used to create an optical illusion. An Ames room is constructed so that from the front it appears to be an ordinary cubic-shaped room, with a back wall and two side walls parallel to each other and perpendicular to the horizontally level floor and ceiling. As a result of the optical illusion, a person standing in one corner appears to the observer to be a giant, while a person standing in the other corner appears to be a dwarf. The illusion is convincing enough that a person walking back and forth from the left corner to the right corner appears to grow or shrink.Human beings are not good at absolute estimation. For Eg: One cannot tell a weight of a person by just looking at them.
  • Temporal estimates are more error prone due to various reasons: skill, knowledge, assumptions, self-efficacy, etc.
  • Optimism bias is the demonstrated systematic tendency for people to be over-optimistic about the outcome of planned actions. This includes over-estimating the likelihood of positive events and under-estimating the likelihood of negative eventsIn a debate in Harvard Business Review, between Daniel Kahneman, Dan Lovallo, and Bent Flyvbjerg, Flyvbjerg (2003) – while acknowledging the existence of optimism bias – pointed out that what appears to be optimism bias may actually be strategic misrepresentation. Planners may deliberately underestimate costs and overestimate benefits in order to get their projects approved, especially when projects are large and when organizational and political pressures are high. Kahneman and Lovallo (2003) maintained that optimism bias is the main problem.
  • The project plan is created and estimation is broken up into design, implementation and testing
  • As the design is slipped by 25%, the estimate is off by 25% not 1 week because we cannot combine the actuals to estimates. Implementation and testing should also slip by 25% because our estimation was off by 25% in case of design.
  • Domain experts make a lot of assumptions while providing specification requirements.For example: A mechanical engineer when talks about washers he means “disc shaped plate with a hole used in threaded fasteners”For a hotel manager washer could be “dish washer or washing machine”
  • Customers provide anchoring by one of the following ways:1) Size of specification document2) Adding irrelevant details like UI, usernames, password3) Gives extra requirement but asks not to estimate it4) Gives own estimate but asks you to ignore it.
  • Biased opinions: “The person working on this project must be expert in Java”“You should know pointers to work on this task”
  • There are most probably boss, co-workers in organization who have dominating opinions and they influence the estimates more often than not.
  • Downside of overestimation is Parkinson’s law: Work expands to fill time
  • Student syndrome refers to the phenomenon that many people will start to fully apply themselves to a task just at the last possible moment before a deadline. This leads to wasting any buffers built into individual task duration estimates.This same behaviour is seen in businesses; in project and task estimating, a time- or resource-buffer is applied to the task to allow for overrun or other scheduling problems. However, with Student syndrome, the latest possible start of tasks in which the buffer for any given task is wasted beforehand, rather than kept in reserve.
  • Cone of uncertaintyThe horizontal axis contains common project milestones such as Initial Concept, Approved Product Definition, Requirements Complete, and so on. The vertical axis contains the degree of error found in estimates created by skilled estimators at various points in the project. Estimates created very early in the project are subject to a high degree of error. Estimates created at Initial Concept time can be inaccurate by a factor of 4x on the high side or 4x on the low side (also expressed as 0.25x, which is just 1 divided by 4). The total range from high estimate to low estimate is 4x divided by 0.25x, or 16x.
  • Cone of Uncertainty represents the best case accuracy it’s possible to have in software estimates at different points in a project. The Cone represents the error in estimates created by skilled estimators. It’s easily possible to do worse. It isn’t possible to be more accurate; it’s only possible to be more lucky.When the project isn’t conducted in a way that reduces variability—the uncertainty isn’t a Cone, but rather a Cloud that persists to the end of the project. The issue isn’t really that the estimates don’t converge; the issue is that the project itself doesn’t converge, that is, it doesn’t drive out enough variability to support more accurate estimates.
  • The Cone narrows only as you make decisions that eliminate variability.
  • Make your ranges as wide as they need to be (use theory of cone of uncertainty)
  • The planning poker estimation units are not generally temporal.They are relative estimation relative to base. For example: If Login screen task is taken as a base, all other tasks are estimated based on this task.The estimation describe how many times the task is easier / harder than the base task.Finally the base task is calculated in ideal hours / days and remaining tasks time are thus calculated.
  • Agile Software Estimation

    1. 1. Agile Software Estimation<br />- Sunil Kumar<br />
    2. 2. Agenda<br />What is an estimate?<br />Scenario<br />What are the factors influencing estimating?<br />How are agile projects estimated?<br />How Agile estimation solves common estimation problems?<br />
    3. 3. How to estimate this task ?<br />
    4. 4. What is an estimate?<br /> Unbiased, analytical process to predict the duration or cost of a project<br />
    5. 5. Estimation is the calculated approximation of a result which is usable even if input data may be incomplete or uncertain.<br />
    6. 6. What does the definition mean?<br />
    7. 7. By definition estimate is not accurate<br />
    8. 8. Estimation is prediction not PLAN<br />
    9. 9. Typical first estimate is off by factor of 4<br />
    10. 10. We are not good in absolute measurement<br />
    11. 11. We are good in comparing things<br />
    12. 12. Estimates are not commitments<br />
    13. 13. Time is not persistent<br />
    14. 14. Scenario<br />You are told to estimate a project to “build a space shuttle that will land on moon”<br />You say “It will take 6 months to 2 years”<br />Your superior hears “It will take 6 months”. why? – optimism bias, organization, political and competitive pressures.<br />
    15. 15. Scenario contd..<br />6 month estimate breakup<br />1 month design<br />4 months implementation<br />1 month testing<br />
    16. 16. Scenario 1 contd..<br />Design takes 5 weeks, late by 1 week<br />How much did the project slip?<br />1 week?<br />25% ?<br />
    17. 17. Answer<br />25% slip in project<br />25% of design = 1 week<br />25% of implementation = 1 month (approx 4 weeks)<br />25% of testing = 1 week<br />Total slip in project = 6 weeks<br />
    18. 18. Factors influencing estimating<br />
    19. 19. Assumptions (domain jargon)<br />
    20. 20. Anchoring (by customers)<br />
    21. 21. Same specification<br /><ul><li>One page spec
    22. 22. Group A</li></ul>117 hours<br /><ul><li>7 Pages spec
    23. 23. Group B</li></ul>173 hours<br />
    24. 24. Irrelevant information for same spec<br /><ul><li>Group A</li></ul>20 hours<br /><ul><li>added irrelevant details:
    25. 25. End user desktop apps
    26. 26. Usernames & passwords
    27. 27. Etc.
    28. 28. Group B</li></ul>39 hours<br />
    29. 29. Extra requirements<br /><ul><li>Requirements 1-4
    30. 30. Group A</li></ul>4 hours<br /><ul><li>Requirements 1-5
    31. 31. Group B</li></ul>4 hours<br /><ul><li>Requirements 1-5 but told to estimate 1-4only
    32. 32. Group C</li></ul>8 hours<br />
    33. 33. Given anchor<br /><ul><li>Group A</li></ul>456 hours<br /><ul><li>Customer thinks 500
    34. 34. customer has no technical knowledge
    35. 35. Don’t let the customer influence you
    36. 36. Group B</li></ul>555 hours<br /><ul><li>Same as B customer thinks 50
    37. 37. Group C</li></ul>99 hours<br />
    38. 38. Biased opinion<br />
    39. 39. Dominating opinion<br />
    40. 40. Re estimation is considered heretic by most organizations so we overestimate by buffering<br />
    41. 41. Overestimation downside: Goldratt’s student syndrome<br />Eliyahu M. Goldratt<br />
    42. 42. Competition, pressure from boss, peer-pressure, optimism bias, etc leads us to underestimate<br />
    43. 43. Underestimating leads to project plan destruction<br />
    44. 44. More bugs<br />
    45. 45. Bad team health<br />
    46. 46. More time in “status” meetings to discuss slippage<br />
    47. 47. Time-based estimates are not additive for a team of varied skill set<br />
    48. 48. What is the source of uncertainty in our projects?<br />
    49. 49. Cloud of uncertainity (if the project is not well controlled)<br />
    50. 50. Control the effects of overestimation and cloud of uncertainty using project planning and status visibility<br />
    51. 51. Other factors influencing estimates<br />Unstable requirements<br />Forgetting to include the following while estimating<br />Version control overhead<br />Code review<br />Build, installing<br />More meetings<br />Sick leaves<br />etc<br />
    52. 52. Always compare your estimates to your actuals or you’ll never be a better estimator<br />Wisdom = Experience + reflection<br />- Aristotle<br />
    53. 53. Points to remember from Steve McConnell<br />Narrow ranges != greater accuracy<br />Don’t give off the cuff estimates<br />Precision is not accuracy. The project will not take 233.725 hours<br />Find something meaningful to count and keep a record of it.<br />Use expert judgement only as a last resort<br />
    54. 54. Estimation techniques<br />Expert opinion<br />Analogy<br />Educated guess<br />Disaggregating<br />Planning poker – Agile estimation<br />
    55. 55. Planning poker<br /><br />Consensus-based estimation technique for estimating<br />First described by James Grenningand later popularized by Mike Cohn in the book Agile Estimating and Planning<br />
    56. 56. Planning Poker<br />Estimated in story points for user stories* <br />It is most commonly used in agile software development<br />First described by James Grenning in 2002 and later popularized by Mike Cohn in the book “Agile Estimating and Planning”<br />For Eg: the deck contains the following cards: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100.<br />User stories are user requirements of form &quot;As a &lt;Some Role&gt; I want &lt;Some Need&gt; so that &lt;Some Benefit&gt;”<br />
    57. 57. Planning Poker<br />Each person gets a deck of cards.<br />The story to be estimated is read to all.<br />Attendants ask clarifications for the item.<br />Each person selects a card and puts it on the table facing down.<br />When everyone is done, cards are exposed.<br />If the estimations do not match a short discussion is done. <br />Timer is started for discussion and discussion must cease when it runs out -&gt; Goto 4.<br />Handle next item.<br />
    58. 58. Why planning poker works ?<br />Those who do the work estimate it.<br />Emphasizes relative estimation<br />Estimates are within one order of magnitude.<br />Reduces anchoring - Everyone&apos;s opinion is heard.<br />Modeled for open discussion – forces thinking.<br />It’s quick & fun !<br />
    59. 59. At the beginning of the project<br />Use story trawling to prioritize tasks.<br />
    60. 60. How to calculate time?<br />Time (in no of iterations) = <br />( No of Story points / Velocity of each sprint/iteration)<br />
    61. 61. Velocity <br />How many points can the team complete in one iteration.<br />Easy to measure.<br />Fixes estimation errors.<br />Easily reflects the project status.<br />Primary parameter in planning.<br />
    62. 62. How Agile estimation solves common estimation problems?<br />
    63. 63. Assumptions reduced by constant communication<br />
    64. 64. Anchoring is eliminated by not estimating in time but relatively<br />
    65. 65. Cross-functional team while estimating shield from biased opinion<br />
    66. 66. Blind vote and consensus rules out dominating opinion<br />
    67. 67. Daily standup, self-organization and burndown charts reduce affect of overestimation<br />
    68. 68. Estimation is based on team velocity for a sprint, this reduces underestimation<br />
    69. 69. References<br />Agile estimation and planning – Mike cohn (<br /><br /><br />Software Estimation: Demystifying the black art – Steve McConnell (<br />
    70. 70. Questions?<br />