The Spiral software development model breaks a project into
several subprojects that are designed to mitigate the high risk areas of the
project. As shown in the spiral below, this approach tackles the hardest
problems first and then moves around the spiral to work on the other risk areas
of the project. On each iteration more and more of the overall project is
completed. In each cycle, a prototype or other software model is delivered
to satisfy each step.

Once all risks areas have been resolved, the work from the
previous cycles is used to produce the complete application. Typically, at
this point, a Waterfall type model is used to develop the remaining software,
integrate with the previous software and test the complete system.
The Spiral model works well for high risk projects as well as
projects where the requirements are uncertain. This approach allows a lot
of flexibility to change the design based on the results of a previous cycle.
The risk areas can be prototype quickly before committing time and effort to the
more standard parts of the application.