A prototype is an early, simplified model of a software product built to test concepts, explore design options, and gather user feedback before committing to full-scale development. Prototyping is a key activity in the Software Development Life Cycle (SDLC) and is especially valuable when requirements are unclear or likely to change.
Prototyping helps teams:
| Type | Description | Example |
|---|---|---|
| Low-Fidelity | Simple, often paper-based sketches; non-interactive; focuses on layout and flow | Hand-drawn wireframes, sticky-note mockups |
| High-Fidelity | Interactive, digital representations that closely resemble the final product's look and feel | Clickable Figma mockup, HTML/CSS prototype |
Low-fidelity prototypes are quick and cheap to produce, making them ideal for early-stage brainstorming. High-fidelity prototypes are used later to validate detailed design and usability.
A small part of the system is built quickly to clarify requirements. Once the requirements are understood, the prototype is discarded and the actual system is built from scratch.
The prototype is continuously refined through multiple iterations based on user feedback until it eventually becomes the final system.
The final system is built as a series of prototypes, each adding more functionality. The prototypes are eventually integrated into the complete product.
Commonly used in web development; consists of three phases — building a static prototype, making it functional with simulated services, and finally integrating real services.
Prototyping fits into the design phase of the SDLC but influences all stages:
The iterative cycle of Build → Evaluate → Refine is central to prototyping.
Prototypes are also used as a data-collection approach (SLO CS-11-G-01). By observing how users interact with a prototype, developers gather qualitative data (e.g., user confusion, workflow preferences) and quantitative data (e.g., task completion times, error rates) that inform the final design.
For a business idea, the prototype development cycle involves:
This cycle aligns with the Minimum Viable Product (MVP) philosophy: launch the simplest version that delivers core value, then improve based on real-world feedback.
| Prototyping Type | Prototype Fate | Best Used When |
|---|---|---|
| Throwaway | Discarded | Requirements are unclear |
| Evolutionary | Becomes final system | Requirements change frequently |
| Incremental | Merged into final system | Large systems built in stages |