$30 off During Our Annual Pro Sale. View Details »

Software Project Estimation Techniques

Software Project Estimation Techniques

Presentation from the Daycamp4Developers virtual conference talking about how to estimate for software projects, and how to keep track of how those estimations are working out.

Lorna Mitchell

July 26, 2013
Tweet

More Decks by Lorna Mitchell

Other Decks in Technology

Transcript

  1. Software Project
    Estimations
    Lorna Mitchell, Day Camp for
    Developers 6

    View Slide

  2. How Late??

    View Slide

  3. Is Estimating Important?

    View Slide

  4. Is Estimating Important?
    • One of the two most common causes of
    runaway projects is unstable requirements

    View Slide

  5. Is Estimating Important?
    • One of the two most common causes of
    runaway projects is unstable requirements
    • One of the two most common causes of
    runaway projects is optimistic estimation
    (from IEEE: http://lrnja.net/10DRtB4)

    View Slide

  6. Is Requirements Gathering
    Important?

    View Slide

  7. Only if you want to build something
    your client actually wants

    View Slide

  8. Project Requirements
    Requirements are not just about the features.
    Consider:
    • resource and/or cost
    • deadlines
    • platform constraints

    View Slide

  9. Estimations
    Recipe for good estimations:
    • Clear, stable requirements
    • Feedback loop
    • Ability to change the plan

    View Slide

  10. User Stories
    Capture a single action requirement and it's
    motives
    Template:
    As a , I want so that

    View Slide

  11. Example User Stories
    • As a user, I want to see details of a talk so I
    can find out about it
    • As an admin, I want to be able to edit
    details of a talk so I can make changes
    • As a speaker I want to be able to claim a
    talk so it will be listed on my account
    • As a user, I want to rate and comment on a
    talk so that I can give feedback to the
    speaker

    View Slide

  12. Ground Rules of Estimation

    View Slide

  13. Ground Rules of Estimation
    • Only a person capable of completing a task
    can estimate it
    • If a task is estimated at more than half a
    day, the task should be split
    • If a task cannot be estimated, steps should
    be taken to reduce the unknowns

    View Slide

  14. Estimation Techniques

    View Slide

  15. Traditional Method

    View Slide

  16. Planning Poker
    Uses the wisdom of crowds to get an accurate
    estimate.

    View Slide

  17. View Slide

  18. View Slide

  19. Planning Poker
    Uses the wisdom of crowds to get an accurate
    estimate.
    You will need:
    • 3+ players and a facilitator
    • Detailed list of tasks
    • Deck of Planning Poker cards, or equivalent

    View Slide

  20. How To Play Planning Poker
    • Take each task in turn
    • Facilitator describes the task
    • At a signal, players estimate
    • Estimates are close, use average
    • If estimates differ, task is too vague
    • Quickly redefine and re-estimate

    View Slide

  21. How To Run A Meeting
    • If you are leading it, then LEAD
    • Prepare an agenda
    • Observe timings
    • Curtail other discussion

    View Slide

  22. What's Missing?
    Commonly forgotten tasks include:
    • Data migration
    • Copy management
    • Client demo time
    • Server setup
    • Handover documentation

    View Slide

  23. The Flaw In The Plan: Reality

    View Slide

  24. Guide motto: Be Prepared

    View Slide

  25. Risk
    Risks deserve our recognition and respect
    Try to mitigate risks:
    • Identify them
    • Single points of failure: look for
    alternatives/redundancy
    • Unknowns: "spike" to reduce the unknown
    aspect

    View Slide

  26. Tracking Estimates

    View Slide

  27. Tracking Estimates
    Each task has an estimate
    • After working on a task, re-estimate how
    much work is left in that task
    • When it's done, estimate goes to zero
    • Track these per-day to get burndown chart

    View Slide

  28. Example Task List
    Task Owner Mon Tue Wed Thu Fri
    Buy drinks Kevin 3 3 3 3 0
    Make cake Lorna 2 0 0 0 0
    Make sandwiches Lorna 6 6 4 3 0
    Set table Lorna 2 2 2 2 0
    Decorate Cake Lorna 7 7 7 5 2

    View Slide

  29. Example Burndown Chart

    View Slide

  30. Project Velocity: a freakishly reliable
    figure showing the disparity between
    estimated and actual work rates

    View Slide

  31. Measuring Project Velocity
    As well as updating estimates, track time spent
    per task.
    For completed tasks, divide estimate/actual to
    get velocity.
    Use as a multiplier to correct future estimations

    View Slide

  32. Alternative Velocity Measure
    Agile teams working in sprints can measure
    story points per sprint

    View Slide

  33. How to Deliver a Project on
    Time
    • Make excellent estimates
    • Work out how much time there is
    • Schedule in a plan
    • Measure progress
    • Adjust as required

    View Slide

  34. Estimations

    View Slide

  35. Estimations
    • Estimations are important
    • Accurate estimations are achievable
    • We continue to estimate and inform during
    a project

    View Slide

  36. Go Forth and Deliver On Time

    View Slide

  37. Thankyou!
    Any questions?
    Feedback: https://joind.in/8973
    Me: http://lornajane.net

    View Slide