Using prototyping When defining the scope of the individual prototyping sessions it is useful to distinguish between vertical and horizontal prototyping. Evolutionary prototyping may evolve vertically, where each feature of the proposed solution is developed prior to moving on to the next feature. Each feature may be a complete increment or part of an increment.
A horizontal approach, where the breadth of the solution is developed before the depth is considered, could be used as an alternative. The benefit of this approach is to demonstrate clearly to all stakeholders the overall scope of the system, and to establish areas where conformity to a standard or style is required, for example in the user interface to an IT system.
It is possible to combine both vertical and horizontal prototyping by adopting a T-shaped prototype, where the breadth is developed along with a finished slice of the proposed solution.
Failure to manage the users’ expectations during the application of the prototyping technique may lead to dissatisfaction within the project and with the delivered system. It is important to manage these user expectations actively, and this involves:
setting out the objectives of the prototyping exercise up front, including:
agreeing levels of scope, functionality and fidelity, deciding whether the prototype being demonstrated is vertical, horizontal or a combination of these, categorising the objective of the prototyping session (business, capacity or usability);
informing the users of the extent of the prototype, and clearly defining any impact this may have on performance, usability, and so forth; keeping the users up to date with the progress of the development process; not promising that the finished system will achieve the performance (and other non-functional requirements) of the prototype if it is not certain that it can be achieved.
Advantages of prototyping There are many advantages to using prototyping as the basis of requirements definition and demonstration. These include:
Reduced time Prototyping can improve the quality of requirements and and costs: the specifications provided to solution developers. Because changes cost exponentially more to implement the later in development they are detected, the early determination of what the user really wants can result in faster and less expensive delivery.