I like this article about
prototyping and agile development
. While I wouldn’t call it
prototyping, it does advocate building the real user interface
iteratively, evolving behaviour based on received feedback, and
adding functionality incrementally rather than produce a variety of
static mock-ups such as wireframes. We’ve been building user
interfaces iteratively. It works best when the creative and Web
people are part of the team and are colocated. The benefits
Tangible progress is
A working application is the only true measure of
progress. Clients and stakeholders love to see results, even if
they’re evolving. The sooner you have something real to show off,
the happier everyone is going to be.
It’s more engaging.
Because it’s tangible people can play with it. Their understanding
of how it works improves and they can provide better feedback.
It bridges communication
A common vocabulary emerges as people discuss and
interact with the prototype, rather than interpret a design
document. Communication and feedback are focused and less
It’s more thorough.
It’s better to invest a bit more time developing the prototype to
gain insight into many variables that are overlooked by wireframes,
e.g. state, security, error messages, level of effort, page flow,
It’s a reality check.
You have to consider factors contributing to the total experience,
which you might ignore when creating wireframes, e.g. response
time, ease of implementation, cost of maintenance, interfacing
It helps you avoid document
You achieve more because you can spend more time with
developers evolving a working prototype and receiving valuable
feedback, rather than writing and then having to maintain
Talk is cheap.
Typically, meetings and design documents are waste. Start writing
code immediately. The sooner you uncover issues, the sooner you can
understand them and adjust your estimates, and the sooner you can
resolve them, avoiding impact to the timeline.
To develop user interfaces iteratively using HTML prototyping you
need to expect and embrace change. You need to write good code
because high quality code is easy to change, and you need to
maintain a working interface, always. Start small, and employ
varying levels of detail as required. And let things evolve.
Being able to change user interfaces quickly gives you an advantage
and contibutes to your ability to
on the basis of speed