Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Simplifying Software Estimation

Simplifying Software Estimation

Presented at GDG MAD in July 2020.

Pratul Kalia

July 24, 2020
Tweet

More Decks by Pratul Kalia

Other Decks in Programming

Transcript

  1. Pratul Kalia
    @PRXTL • OBVIOUS.IN
    SIMPLIFYING
    SOFTWARE ESTIMATION

    View full-size slide


  2. SOFTWARE ESTIMATION
    STEVE MCCONNELL
    2006, MICROSOFT PRESS

    View full-size slide

  3. WHAT IS AN ESTIMATE?

    View full-size slide

  4. LET’S DRIVE FROM ONE END OF THE CITY TO ANOTHER!
    “How much time will it
    take to finish all these
    things?”

    View full-size slide

  5. Estimates always
    have a probability.

    View full-size slide


  6. Targets are not
    estimates!

    View full-size slide

  7. THE TRAIN LEAVES AT 4.40 PM!
    “Here are a bunch of
    things we have to get
    done by X”

    View full-size slide


  8. Are you chasing a
    target or an estimate?

    View full-size slide

  9. PRESSURE
    & BAD ESTIMATES

    View full-size slide

  10. — ALL ENGINEERS
    “Okay, that is a bit of
    work but I’m sure I can
    do it in 3 days.”

    View full-size slide


  11. Stop putting yourself
    in unreasonable
    situations.

    View full-size slide

  12. There are no prizes
    for getting there fast!

    View full-size slide

  13. — PARKINSON’S LAW
    “Work will expand to fill
    all available time.”

    View full-size slide

  14. (that is…
    if teams have lots of extra time,
    more work will magically get
    created.)

    View full-size slide

  15. — GOLDRATT’S STUDENT SYNDROME
    “Given lots of time,
    students will delay
    studying until the last
    possible moment”

    View full-size slide

  16. Underestimation is worse than
    Overestimation!
    Stastically reduced chance
    of on-time completion.

    View full-size slide


  17. Engineers are too
    optimistic already.

    View full-size slide

  18. OTHER SIDE EFFECTS…
    Poor technical foundation,
    worse in the long run.

    View full-size slide

  19. OTHER SIDE EFFECTS…
    Unproductive,
    emotionally draining
    behaviours.

    View full-size slide

  20. OTHER SIDE EFFECTS…
    - more status meetings!
    - frequent re-estimation!
    - interim releases!

    View full-size slide

  21. OTHER SIDE EFFECTS…
    - meetings to cut scope!
    - fix bugs arising from hacks!

    View full-size slide

  22. THE CONE OF
    UNCERTAINTY

    View full-size slide

  23. “As the project
    progresses, estimates
    become more
    accurate.”

    View full-size slide

  24. (yes that’s quite ,
    isn’t it.)

    View full-size slide


  25. It is easily possible to
    do worse… but not
    better.

    View full-size slide

  26. The Cone does not
    narrow itself.

    View full-size slide

  27. Stop doing
    first-number-in-your-head
    estimates!
    It sets the wrong
    expectation!

    View full-size slide

  28. Even a 15-minute
    estimate is
    exponentially better
    than an instant one.

    View full-size slide

  29. INCLUDE EVERYTHING.
    Some requirements are
    stated.
    Others are implied.

    View full-size slide

  30. INCLUDE EVERYTHING.
    Deployment setup
    Maintaining build scripts
    Code reviews

    View full-size slide

  31. INCLUDE EVERYTHING…
    Writing documentation
    Onboarding new team
    members

    View full-size slide

  32. INCLUDE EVERYTHING!
    Creating test data
    Upgrading dependencies

    View full-size slide

  33. FACTORS THAT
    INFLUENCE ESTIMATES

    View full-size slide

  34. Size of the software!
    The biggest contributor to
    project effort and schedule.

    View full-size slide

  35. As size increases, effort
    goes up exponentially.
    Exponentially. Not linearly.

    View full-size slide

  36. Programmer capability.
    Time constraints.
    Team continuity.
    Required reliability.

    View full-size slide


  37. COCOMO-2 software
    estimation model.

    View full-size slide

  38. IMPROVING
    YOUR ESTIMATES

    View full-size slide


  39. I hope you use story
    points of some type.

    View full-size slide

  40. STORY POINTS.
    Mark of complexity
    They don’t (necessarily)
    represent time!

    View full-size slide

  41. STORY POINTS.
    (for e.g.
    A team using 1/2/3 points
    for a project.)

    View full-size slide

  42. STORY POINTS.
    A junior engineer takes
    5 days to finish a 3-point
    task.

    View full-size slide

  43. STORY POINTS.
    A senior engineer takes
    2 days to finish a 3-point
    task.

    View full-size slide

  44. The time taken is
    different.
    But the complexity is
    similar!

    View full-size slide

  45. NOT COMPLEX…
    Create a “lint step” on the
    CI server

    View full-size slide

  46. NOT COMPLEX…
    Add “patient has already
    visited” option to
    Overdue list

    View full-size slide

  47. COMPLEX?
    Allow Blood Pressure
    measurements to be
    deleted

    View full-size slide


  48. The Law
    of Large Numbers

    View full-size slide

  49. “If you create one Big
    Estimate, your error(s) will
    either be completely on the
    high side, or the low side”

    View full-size slide

  50. “but if you create multiple
    Small Estimates, some
    will be on high side,
    some on the low side.”

    View full-size slide

  51. “… so the errors will
    cancel each other out,
    to some extent.”

    View full-size slide

  52. COMPLEX?
    Allow Blood Pressure
    measurements to be
    deleted

    View full-size slide

  53. ALSO COMPLEX
    Sync Protocol Drugs
    across all facilities and
    display in the app

    View full-size slide


  54. Some tricks!

    View full-size slide

  55. TRICKS!
    Do a detailed task
    breakdown: spend some
    time!

    View full-size slide

  56. TRICKS!
    Think of the “worst case”
    while estimating.

    View full-size slide

  57. TRICKS!
    Compare different stories
    of similar complexity.

    View full-size slide

  58. TRICKS!
    Use a project
    management tool that
    understands “velocity”.

    View full-size slide

  59. TRICKS!
    Engineers should break
    down tasks and estimate
    them.

    View full-size slide

  60. TRICKS!
    Look at past data for your
    team, for similar type of
    work.

    View full-size slide

  61. TRICKS!
    Measure yourself
    privately

    View full-size slide

  62. NEGOTIATIONS
    & AGREEMENTS

    View full-size slide


  63. An estimate is a
    conversation, and a
    negotiation.

    View full-size slide


  64. Engineers “own” the
    estimate… but
    Management “owns” the
    target.

    View full-size slide


  65. The goal of estimation is
    NOT pinpoint accuracy!

    View full-size slide


  66. People want to
    understand VALUE in
    comparison to EFFORT.

    View full-size slide


  67. Do t-shirt-sizing with
    all stakeholders.

    View full-size slide

  68. VALUE EFFORT
    A: S M
    B: M S
    C: S L
    D: XL M

    View full-size slide


  69. Separate people from the
    problem.

    View full-size slide


  70. Focus on interests, not on
    positions.

    View full-size slide


  71. Come up with options
    that benefit everyone.

    View full-size slide


  72. Either everyone wins,
    or everyone loses.

    View full-size slide


  73. GO FORTH
    AND ESTIMATE!

    View full-size slide