The AndPlus Guide to Rapid Prototyping
When architects, engineers, and product designers want to try out their ideas before building (the house, bridge, machine, car, or appliance), what do they do? They make models, or prototypes.
Traditional prototypes are made from cardboard, wood, metal, or clay. More recently, models have been made of electrons: digital representations of the designs that can be tested by simulating loads, wind, earthquakes, and other extreme conditions.
The world of software is not unlike these physical artifacts. Before spending time, effort, and money on building a software application, it’s helpful to first build a prototype.
What is a software prototype, and why is it important?
A software prototype is simply a representation of the system’s user interface (UI), without having the functionality of the intended product. User interface prototyping has several benefits:
- Stakeholders and end users can see in advance the line of thought developers and designers are following. They can confirm or revise this thinking before anything is actually built.
- Prototyping helps the development team understand requirements that may have been unclear or incompletely documented.
- Prototyping can also help all stakeholders understand the limitations of the system, whether those limits are technical (can’t be done in the current technological environment) or financial (can’t be done in the time or budget allocated the project).
At one time, software prototyping was accomplished with paper, markers, scissors, and tape. Later, when graphic editing and screen capture software became affordable, UI designers could build wireframes or “static images” to represent the UI components.
However, these approaches had limitations that reduced effectiveness in conveying how the software would behave:
- Building prototypes was time-consuming and tedious.
- Demonstrating prototypes was cumbersome.
- Modifying the prototype design during a demonstration was nearly impossible. It might take several days for a designer to revise a design from user feedback and hold another demonstration.