Evolutionary prototyping model

It is a company’s goal to stay ahead of its competitors. As such, there has to be some processes that will provide customized service to customers in which flexibility and reliability are given focus. In this regard, the experimental concept of the Evolutionary Prototyping Model has become indispensable.

With this model, processes are made, and throughout the entire course of the project, customers are constantly asked to give feedback for each created prototypes. This is to ensure functionality based on the requirements that customers are looking for in a product or service. As soon as the project is nearing completion, the prototypes should already be well calibrated with the requirements and needs of its target market.

Advantages:

1) When prototype is shown to the user, he gets a proper clarity and 'feel' of the functionality of the software and he can suggest changes and modifications. 
2) This type of approach of developing the software is used for non-IT-literate people. They usually are not good at specifying their requirements, nor can tell properly about what they expect from the software.
3)  When client is not confident about the developer's capabilities, he asks for a small prototype to be built. Based on this model, he judges capabilities of developer. 
4)  Sometimes it helps to demonstrate the concept to prospective investors to get funding for project.
5)  It reduces risk of failure, as potential risks can be identified early and mitigation steps can be taken.
6)  Iteration between development team and client provides a very good and conductive environment during project.
7)  Time required to complete the project after getting final the SRS reduces, since the developer has a better idea about how he should approach the project.

Disadvantages:

1)  Prototyping is usually done at the cost of the developer. So it should be done using minimal resources. It can be done using Rapid Application Development (RAD) tools. Please note sometimes the start-up cost of building the development team, focused on making prototype, is high.
2)  Once we get proper requirements from client after showing prototype model, it may be of no use. That is why, sometimes we refer to the prototype as "Throw-away" prototype. 
3)  It is a slow process.
4)  Too much involvement of client, is not always preferred by the developer.
5)  Too many changes can disturb the rhythm of the development team.