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

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.

D33d8bdd9096c80b8d1acca8d28410b5?s=128

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

  2. How Late??

  3. Is Estimating Important?

  4. Is Estimating Important? • One of the two most common

    causes of runaway projects is unstable requirements
  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)
  6. Is Requirements Gathering Important?

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

    wants
  8. Project Requirements Requirements are not just about the features. Consider:

    • resource and/or cost • deadlines • platform constraints
  9. Estimations Recipe for good estimations: • Clear, stable requirements •

    Feedback loop • Ability to change the plan
  10. User Stories Capture a single action requirement and it's motives

    Template: As a <role>, I want <goal/desire> so that <benefit>
  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
  12. Ground Rules of Estimation

  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
  14. Estimation Techniques

  15. Traditional Method

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

    accurate estimate.
  17. None
  18. None
  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
  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
  21. How To Run A Meeting • If you are leading

    it, then LEAD • Prepare an agenda • Observe timings • Curtail other discussion
  22. What's Missing? Commonly forgotten tasks include: • Data migration •

    Copy management • Client demo time • Server setup • Handover documentation
  23. The Flaw In The Plan: Reality

  24. Guide motto: Be Prepared

  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
  26. Tracking Estimates

  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
  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
  29. Example Burndown Chart

  30. Project Velocity: a freakishly reliable figure showing the disparity between

    estimated and actual work rates
  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
  32. Alternative Velocity Measure Agile teams working in sprints can measure

    story points per sprint
  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
  34. Estimations

  35. Estimations • Estimations are important • Accurate estimations are achievable

    • We continue to estimate and inform during a project
  36. Go Forth and Deliver On Time

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