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.

Lorna Mitchell

July 26, 2013
Tweet

More Decks by Lorna Mitchell

Other Decks in Technology

Transcript

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

    causes of runaway projects is unstable requirements
  2. 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)
  3. Project Requirements Requirements are not just about the features. Consider:

    • resource and/or cost • deadlines • platform constraints
  4. User Stories Capture a single action requirement and it's motives

    Template: As a <role>, I want <goal/desire> so that <benefit>
  5. 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
  6. 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
  7. 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
  8. 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
  9. How To Run A Meeting • If you are leading

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

    Copy management • Client demo time • Server setup • Handover documentation
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. Estimations • Estimations are important • Accurate estimations are achievable

    • We continue to estimate and inform during a project