Come up with a basic designFigure out the greatest risks in your designBuild prototypes that mitigate those risksTest the prototypesCome up with a more detailed design based on what you have learnedReturn to step 2