For a few golden moments in the mid-'70s, it appeared that the software field had found a sequence of milestones around which people could plan, organize, monitor, and control their projects. These were the milestones in the waterfall model. They typically included the completion of system requirements, software requirements, preliminary design, detailed design, code, unit test, software acceptance test, and system acceptance test. Unfortunately, just as the waterfall model was becoming fully elaborated, people were finding that its milestones did not fit an increasing number of project situations. The risk-driven content of the three milestones proposed in this article let you tailor them to specific software situations, and at the same time they remain general enough to apply to most software projects.