Clarifying requirements is one of the primary means of reducing software risk. Even though a knowledgeable user representative is involved in the requirements specification process, risk can be further reduced by obtaining
requirements feedback from as large a number of customer personnel as possible. A prototype gives customers and developers alike the opportunity to identify missing or incorrect functionality while exercising the prototype. Even if very little actual functionality in the prototype works, a prototype is one of the better vehicles for verifying the correctness and completeness of requirements.