For Systems which are large and complicated and where there is no manual process or existing system Prototyping is a very Good Idea.
In this model, a prototype of the End product is first developed, tested and reworked as per customer feedback repeatedly till a final acceptable prototype is achieved which forms the basis for developing the final product.
It is used when the project’s requirements are not known in detail.
It consist of following phases :
- Requirement Gathering
- Quick design
- Building prototyping
- Engineering product
- Refining prototype
- Customer Evaluation
- Requirement Gathering : At this stage all requirements are gathered from all the stakeholders , it can be functional / system or technical requirements.
- Quick design: In this phase a simple design is created which give a brief idea about system.
- Building prototyping: It is the working model of the system which has been created using requirements gathering and quick design
- Customer Evaluation: In this stage product is shown to the client and take feedbacks from them.
- Refining prototype: It is like changes to be done in system as per Client feedback
- Engineering product: Engineering been done on the product
Diagram of Stages of prototype
In this model customers has opportunity to see the product early in the life cycle as during the analysis phase or before it system is partially implemented
Stages of Prototyping
Low Fidelity Prototype : They can be created either using pen & paper like sketches which does not show user interaction much or mockup which can be created using tools like balasmiq. It result in lower production cost & easy to modify as well as fast to modify.
Medium Fidelity Prototype : These prototypes involves much od user interaction, User can fully experience the final product.
It can be created with the help of tools like Axure and Mockplus
High Fidelity Prototype : These prototypes are closer to the final product including all the product features and interactions which reduce communication costs and are more accurate and exquisite. Tools such as Justin mind and Adobe XD are used for developing such mock-ups.
Advantages of using Prototype Model
- Flexibility in Design:
As customer can anticipate the high cost, needed changes and potential hurdles in the product and they can make changes
which improves the quality of specification and requirement provide to the customer.
- Easy to detect errors.
- Help us to detect errors before the development phase.
- Can find missing functionality easily.
If some functionality is missing it can be easily added or incorporated in the system leading to advantage to customer and their satisfaction
There is scope of refinement; it means new requirements can be easily
accommodated.
- It can be reused by the developer for more complicated projects in the future.
- It is ideal for online system.
- It helps developers and client both understand the system better.
- Integration requirements are very well understood at a very early stage.
- It can actively involve users in the development phase.
Disadvantages of using Prototype Model
- It is costly.
- It has poor documentation because of continuously changing customer requirements.
- There may be too much variation in requirements.
- If developer invests lots of time in developing a complex prototype then it could be a problem
- In some cases Customers demand the actual product to be delivered quite early after seeing prototype.(Wrongly perceive prototype)
- There may be chances of sub-optimal solutions because of hurriness in developers to build prototypes.
- Customers may not be happy or interested in the product after watching the initial prototype.
- It may happen if a BA is not able to gather all requirement then it could be a problem for the prototyping
- Problem analysis can be incomplete or inadequate. It can distract the developer to understand the functionality flow.
- It may increase the complexity of the system. developer may get stuck when we actually do prototyping as there certainty in determining the number of iterations