the reason behind prototyping is that even after all of the formative work during UX research and creation of personas, wireframs, scenarios, and storyboards there often still isn't enough granular detail to really create an effective solution. Prototyping aims to bring everything together pragmatically and answer all the missing questions while keeping all the value added results form our research in mind.
A prototype aims to mitigate to major risks when building a system:
- How exactly should the solution work, going from broad strokes to fine edges
- Mitigate the cost of engineering and software development by
By building a prototype before beginning true development you can flush out a majority of the challenges that will be faced by the development team before they're faced with them. Prototyping enables testing and collecting feedback on:
- Overall design concept
- Functionality of different components of the system
- User interactions
- Layouts
- Fine-grain design details such as fonts and color schemes
"Each prototype is intended to answer one ore more questions intended to help designers make decisions that move the design forward"
Types of Prototypes
- Storyboards: a sequence of frames depicting a visual story with descriptions providing context of use. they act as both a representation of the formative work as well as prototype in the sense that they allow the extraction of feedback about a concept as well as context of use.
- Sketches: Visual ideation around different approaches and options. Also used for early feedback to validate ideas and approaches to solving problems.
- Wireframes: Visual representations of an individual screen or view of a system. they are used to identify what type of input and output is collected and displayed as under what conditions. Used to map out a high level understanding of the system, not a polished product.
- Interactive prototype: captures multiple states of a design, transitions, interactions, look & feel.
prototyping maximizes the number of times a solution can be revised and refined before it is committed to code.