- 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.