A model or a prototype is a representation of the reality. Models of an existing system or a proposed one can be constructed. Modelling and prototyping is used in the software field since it reduces risk,costs, time and effort in building the real product. Also, these prototypes help software business – users as well as BA’s to visualize the proposed solution.
The software applications can be really hard at times. Since the user’s view about a system is largely restricted to what he enters as input or what he sees as output, prototyping in a software sense implies creating a model of such visible elements of the system. Thus screens could be designed and linked to each other, to see how the interaction happen. Fortunately, software tools can help in building prototypes of software solutions very quickly. For instance, you could create web(HTML) screens and link them up from the highest menu level to the most detailed page. Such a demo can help a user to visualize the solution and imagine the various possibilities. Prototyping can be used as a good method for analyzing software requirements.
One point to note about prototyping is that a BA must not in any way lead the user to think that the final product is just a step away from the prototype just demonstrated. In fact this is far from the truth. The screen- based prototype is really the surface of the application. There is a tremendous amount of coding to be done for the middle tier and backend of the application. Even thee front-end, in many cases, requires substantial improvements before it can be said to be final. Thus prototypes may at times mislead a user into thinking that the software is nearly reeeady thereby creating false expectations which the BA must quick enough to correct.
The second limitation of the prototype is that most prototypes are static in nature,i.e. they lack the dynamic behavior in terms of interactive actions which a real life solution would have. Hence, users at times find it difficult to visualize the proposed interactivity of the final product based on the static prototype. Hyperlinking and adding a basic level of navigation, etc. could partially help reduce this problem. It is thus important to use a prototype which is capable of stimulating the entire interaction as it would happen once the solution is ready- though it may use static screens for the same.
Before I end the post, I will share a link for a retail banking website’s prototype for better understanding: http://www.carettasoftware.com/gallery/banking-design.html
Happy building prototypes 🙂