Reynard Thomson Logo

What Is Software Prototyping?

Graphic of figures lifting jigsaw piece

The idea behind software prototyping is to allow people who have some 'stake' or interest in a system to 'test drive' designs, rather than having to interpret those designs based on some other means. Though not all prototypes are interactive, the most useful application of prototyping is based upon providing a similation of some behaviour and functionality.

Types of Software Prototyping

There are many different approaches to prototyping, from the very simple 'sketches-on-a-post-it' to rich, fully interactive software simulations. Broadly speaking, however, we can classify these into three main categories:

Wireframes/Paper Prototypes

Wireframes and Paper Prototypes are useful early-stage techniques, though limited in as much as they are non-interactive and usually very broad. If our project were to be painting a landscape, you might think of wireframes and paper prototypes as the early sketches on a notepad, or some under-painting. In other words, suggesting the basic shape but not saying much about the details. Though often simplistic, this style of prototype is useful because they can be very quick to create and don't require so much technical expertise to put together.

Visual Prototypes

These often come in the form of screen mock-ups, perhaps in a paper form or created using a graphics tool such as Adobe Photoshop. They offer an opportunity to prototype the look and feel of a system design, though not normally any functionality or operational flows. They are often visual mock-ups rather than true prototypes, in as much as they represent a useful tool to demonstrate potential appearances and layouts. These typically come from a designer's viewpoint rather than a business or software expert.

Interactive Prototypes

These are far more useful, though require an increased investment in time to create. They aim to model a system design more faithfully, and represent actual paths through that system. They generally will combine the visual aspects of a static prototype with a certain degree of interactive functionality. This might mean navigation, or the use of real web controls, or even mock data processing. As a platform for demonstrating a system, these are the richest, most useful types of prototype, although the slowest to create.

We are advocates of Interactive Prototyping, especially in combination with business analysis and user feedback sessions. However, there are times when the use of alternative approaches makes more sense.

Graphic of figure pushing a jigsaw piece

Benefits of Software Prototyping

The main benefit of software prototyping is in obtaining feedback on a proposed design at an early stage in a project. This feedback can be used to help refine project requirements specifications, establish usability and gain stakeholder support. Used properly, prototyping provides a platform from which to base more accurate estimates for the subsequent phases of a software development project.

Visualisation of an design is another benefit. We all know how difficult it is to picture an end-product from a paper specification. By creating prototype models and simulations we can improve our understanding of what is to be developed. Once a prototype has been created for a project, it is easy for everyone to gain a 'sneak preview' of what the end system will look like and what it will do. This is a very productive process as problems with a design are usually much more obvious when a prototype is created, and can be addressed long before the costly development phase starts.

By creating sophisticated interactive prototypes, it's even possible to model use-cases and operational sequences through a design. This allows for particular operations to be tested and refined without the enormous effort that would be required if a design were to be implemented without prototyping.

All told, this may at first seem to be an unnecessary expense in these 'credit crunch' times, but a modest investment in interactive prototyping will usually pay for itself several times over, given the savings in medium-term development and long-term support costs. Just as you wouldn't dream of building a house without deciding whether it was an apartment or a semi-detached house, you really shouldn't embark upon any software development without pinning down the exact nature of the system, and the best way to do that is to use prototyping techniques, or better still, engage a requirements prototyping specialist such as ourselves.

Please contact us for more information about how we can help your project save money by the effective use of Software Prototyping techniques.