Prototypes

A prototype can be a blessing or a curse to a developer. Essentially a prototype is cut down version of the full development which allows the user a chance to see the system working before it is finished. Normally a prototype will be built for a essential part of the system such as the interface and then the user can play around with it and feedback. So, for example, if the user does not feel that the prototype meets their requirements then the prototype can be modified with little cost.

There are two ways to consider prototyping. The first is building quick versions of the system which are then thrown away once the user has seen them. The second is to build more robust prototypes which then can form part of the final build. It may seem more desirable to use the second approach however what happens if the user wants dramatic changes? Then the prototype would have to be discarded anyway. It is very project dependant on which method you should use; Throwaway or evolutionary (or incremental).

What prototypes, when used correctly, allow the developer to test out ideas with the user and gain a much closer cohesion with the requirements specification. It also allows for incremental development and works very well with object orientated solutions.

Advantages

Disadvantages