The prototyping model is a systems development method in which a prototype is built, tested and then reworked as necessary until an acceptable outcome is achieved from which the complete system or product can be developed. This model works best in scenarios where not all of the project requirements are known in detail ahead of time. It is an iterative, trial-and-error process that takes place between the developers and the users.
Steps of the prototyping model
In most cases, the steps of the prototyping model are as follows:
- The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the departments or aspects of the existing system.
- A preliminary, simple design is created for the new system.
- A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
- The users thoroughly evaluate the first prototype and note its strengths and weaknesses, what needs to be added and what should to be removed. The developer collects and analyzes the remarks from the users.
- The first prototype is modified, based on the comments supplied by the users, and a second prototype of the new system is constructed.
- The second prototype is evaluated in the same manner as was the first prototype.
- The preceding steps are iterated as many times as necessary, until the users are satisfied that the prototype represents the final product desired.
- The final system is constructed, based on the final prototype.
- The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.
Types of prototype models
There are a few types of prototype models that can be implemented by development teams based on their needs:
- Rapid throwaway- This method involves exploring ideas by quickly developing a prototype based on preliminary requirements that is then revised through customer feedback. The name rapid throwaway refers to the fact that each prototype is completely discarded and may not be a part of the final product.
- Evolutionary- This approach uses a continuous, working prototype that is refined after each iteration of customer feedback. Because each prototype is not started from scratch, this method saves time and effort.
- Incremental- This technique breaks the concept for the final product into smaller pieces, and prototypes are created for each one. In the end, these prototypes are merged into the final product.
- Extreme- This prototype model is used specifically for web development. All web prototypes are built in an HTML format with a services layer and are then integrated into the final product.
Advantages of the prototyping model
Using a prototype model can bring multiple advantages, including:
- Customers get a say in the product early on, increasing customer satisfaction.
- Missing functionality and errors are detected easily.
- Prototypes can be reused in future, more complicated projects.
- It emphasizes team communication and flexible design practices.
- Users have a better understanding of how the product works.
- Quicker customer feedback provides a better idea of customer needs.
Disadvantages of the prototyping model
The main disadvantage of this methodology is that it is more costly in terms of time and money when compared to alternative development methods, such as the spiral or waterfall model. Since in most cases the prototype is discarded, some companies may not see the value in taking this approach.
Additionally, inviting customer feedback so early on in the development lifecycle may cause problems. One problem is that there may be an excessive amount of change requests that may be hard to accommodate. Another issue could arise if after seeing the prototype, the customer demands a quicker final release or becomes uninterested in the product.