Generally, prototyping is used to determine if a design is effective or if it can really perform the functions it was made to do.
The same goes with software prototyping. In prototyping software the creators of the program make an unfinished model of the program available to consumers. The creators let their potential clients test the software and allow them to evaluate how well it works.
Because of the generated feedback, designers can alter the software even before they began to release the full version. This would be more economical to the creators rather than releasing the full version now and then patching up the softwares inconsistencies later.
It would also help designers save face in case the software failed to leave up to consumers expectations. It is a fact that consumers know more than anybody else about problems that could be encountered in using the software.
So any form of feedback from them early on in the project could be valuable in the programs performance. Through the feedback from prototyping, determining at first hand what the consumers really want can lead developers in creating a faster and cheaper software.
Improved and increased user involvement: Protoptyping requires user involvement and allows them to see and interact with a prototype allowing them to provide better and more complete feedback and specifications.
The presence of the protoype being examined by the user prevents many misunderstandings and miscommunications that occur when each side believe the other understands what they said.
Since users know the problem domain better than anyone on the development team does, increased interaction can result in final product that has greater tangible and intangible quality. The final product is more likely to be satisfy the users desire for look, feel and performance.
However, when not used properly, software prototyping might be detrimental to the development of the whole program itself. Developers might be too focused on creating a prototype that they become remiss on their job to make the full version of the software.
Consumers might also think that the prototype is the real thing and might inaccurately evaluate the product by having too much expectation.
Also, developers might spend a great deal of time creating a prototype. A prototype is supposed to be created quickly and if it takes too long for the developers to make one, it might become too costly for the whole project.
Plus, additional expense can be incurred on creating a separate team to develop the prototype.