I recently created this short poster as a personal means of illustrating in a compelling manner the core phases and tools and types for prototyping a UI design (focused exclusively, from the broader user-centered design process).
Basically I suggest that prototyping is an activity that enables the designer’s journey from abstraction (a novel but fuzzy idea) towards reality (the engineered product), in concert with a multi-disciplinary team.
That journey involves, as I see it, three major phases:
1. Exploratory PLAY: prelim exploration and play, trying out options, feeling out boundaries and limits, gathering early user inputs, making sense of toolkits, etc. This takes the form of whiteboard sketches, paper prototypes, sandboxed code tests, throwaway exercises, etc.
2. Communicative PROPOSAL: well-formed proposal for discussion, iteration, and formal usability evaluation. This takes the form of a concept car, sales demo, vision video, proof of concept, etc.
3. Declarative SPECIFICATION: specified solution with granular decisions for the content, behavior, and visuals, whereby the prototype is a functional demonstration of the real product’s features/styles. The prototype is robust enough to serve as the design spec itself (with minimal supporting documentation).
The end goal is achieving a prototype that effectively serves as the spec, or “prototype-as-spec” (proto-spec, as some have called it). It is a behavioral representation of the real product, at a highly resolved degree of fidelity for effective communication of the intended vision to the programmers, and QA testers. This would help get designers out of the documentation maintenance quagmire, and foster stronger ties between design and engineering, also provide efficient, clearer communication of what the design should do! 200 page Word documents with endless tables and labeled figures can only do so much…and can actually be counter-productive! Having a robust behavioral prototype of the real thing is much preferable for designers and programmers alike.