Simply put, prototyping is creating a functional and easily modifiable model, simulation or demonstration of a product such as a software.
Prototyping can be done before, during and later stages of developing the product. It is conducted before the start of the developing process to show that the concept is attainable, useful for the intended clientele and beneficial for the company.
Also by conducting prototyping at the beginning, the developers will know what specifications are needed and what features are preferred to be included in the final output.
Meanwhile, by conducting prototyping during the developing process, the developers will have an opportunity to check if the product is meeting all features and specifications and will have a chance to evolve these product characteristics into a better output.
When conducted in the later stages, prototyping can determine problems and possible solutions on the functionality of the products design. It allows changes to be made and various solutions to be implemented just before the full product version is released.
One uses prototyping in order to lessen the communication gap between the developers and the target clients. Prototyping improves the communication flow which can increase the chance that the customers will accept the final product.
Prototyping is also used to clarify misconceptions about the product, assure output quality, manage alterations, increase user participation, gather valid specifications, and address various product issues like visibility and negative publications.
Even though prototyping can be done on mostly any project endeavor you will have to perform the process at the right time, at the right place and using the appropriate tools to achieve a successful and usable prototype. A successful prototype should be able to test the functionality of the product and evaluate a suggested product interface.
Prototyping also has a higher rate of success if it is utilized to compare various product designs, to explore results of design alterations, to identify market needs, to involve end users in the designing workflow, to draw out any fresh, possible or unexpected elements into the design, and if it is used later on to construct a larger and more complex model.
On the other hand, when your prototyping proved to be unsuccessful its most likely that you failed to create a clear set of criteria that would have determined when to end the prototyping process.
Prototyping failure also means that the consumers expectations were all accommodated which allowed it to go out of hand. If you applied all the operational functions of the prototype to the larger and final product and you find them lacking or did not meet product expectations then it means you made some errors during the prototyping process. It is also wrong to use prototyping to measure the future performance of a system that is still in the planning stage or use it as a marketing tool for a product that exists only on paper.