An iterative process: each phase consists of similar stages: planning, risk analysis, engineering, construction & release, system evaluation, and liaison. Each iteration allows more details to be added. Flexible, Risk Handling, Suitable for technically challenging software, Suitable when risk may be increasing and we can't anticipate it at the beginning