Milestones are a crucial technique for measuring progress on a project. If completing the project by a specific date is important, consider setting milestones for completion.
Set up a small number of major milestones for the project, making sure each one has clear requirements. To minimize risk, set milestones to complete the most important components first. If, after reaching a milestone, the project falls behind schedule and there is not enough time for another milestone, the most important components already are complete.
Throughout development, strive to keep the quality level high. If you defer problems until you reach a milestone, you are deferring risks that can delay the schedule. Delaying problems makes it seem like you are making more progress than you actually are. It also can create a situation where you attempt to develop on top of an unstable foundation.
When working toward a major milestone, set smaller goals to gauge progress. Determine minor milestones from the task list you created as part of the estimation process.
Several third-party resources contain more information about creating major and minor milestones.
One of the biggest mistakes people make is missing a milestone and not reexamining the project as a consequence. After missing a milestone, many developers continue on the same schedule, assuming they can work harder and make up the time.
Instead, if you miss a milestone, evaluate the reasons you missed it. Is there a systematic problem that always affects subsequent milestones? Is the specification still changing? Are quality problems slowing down new development? Is the development team at risk of burning out from too much overtime?
Consider problems carefully. Discuss each problem or setback and avoid accusations. Have the entire team make suggestions on how to get back on track. Solutions can include stopping development and returning to design for a period of time, deciding to cut back on certain features, adding no new features until all the problems are fixed, or renegotiating the schedule.
Deal with problems as they arise and monitor progress by tracking changes to avoid repeating mistakes or making new ones. Do not wait until the end of the milestone or the end of the project to correct problems.
Do not be surprised if you miss a milestone. Schedule delays do not occur all at once. They happen little by little, day by day. Correct problems as they arise. If you do not realize you are behind schedule until the last two months of a year-long project, getting back on schedule is difficult.