In the software development lifecycle there are two types of milestones that occur on the path to delivering working software. Let’s take a look at each.

The first is simply a marker to indicate that we have complete a major task or phase of the project. When this type of milestone occurs we automatically move on to the next phase or step of the project. Examples of this type of milestone are “Development Complete”, and “Show and Tell”.

The second type of milestone is one in which an evaluation is made. Based on the result of that evaluation the work either moves forward or some form of rework is required. Examples of this type of milestone are “Code Review”, “Functional Testing”, and “User Acceptance Testing”. It is this second type of milestone that we will focus on for this blog entry.