• Give clients best estimate and update it as you go.
    • Good for Agile approach to programming.
      • Giving updates currently.
    • Not good for 3 month contract.
    • Update them regularly.
    • What percentage you have left on the project. https://www.youtube.com/watch?v=v21jg8wb1eU
  • Understand the goal.
  • Know all of the steps to achieve it.
    • Know how long each steps takes.
    • “Have we done this kind of thing before”?
    • “Have we used this technology before”?
    • “What teams are we relying on”?
  • Predict all interruptions and miss-steps.
  • Factor of 4x required for time taken.
  • Focus on Accuracy, not Precision.
  • Understand the level of precision that makes sense.
  • Extrapolate from Past Performances.
    • Compare new work with old.
    • Identify work of similar complexity.
    • Use the actual time it took as an estimate for new work.
  • Small time-horizons increase accuracy of guesses.
  • Bring people whom would be involved to discuss (around 4 people).
  • A large feature should be completed at most in about a week or two.
    • If estimates agree between all members, then move on.
  • Not seeking a perfect design - imagine one possible design and go with it.
  • If the range of estimates is close, agree on an average.
  • T-shirt size for the job –> Small, Medium, Large.
  • Another good technique is looking at recent performance and extrapolating from that.

Updated: