Hard. Many procedural decisions aim to improve the accuracy of these
estimates. As usual, decomposing the task helps - if phase 1 takes 20% longer
than estimated, and other phases are similar in nature to phase 1, then you
have an early warning of a 20% over-run for the
whole project. If
tasks are small then they're more likely to be comparable to other tasks,
making future estimation easier.
- Beware: typically, 80% of the time is spent on unplanned rework (Survival Guide p.219)
- The industry average for code production is 8-20 lines of correct code per day - independent of the language.
Re-estimate schedules periodically.
Younger programmers tend to be over-optimistic. More experienced ones tend to "sandbag" -
exaggerate the time estimates
Updated November 2009 with help from James Matheson