Iterating user interfaces
I like this article about HTML 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. Iterating works best when the creative and Web people are part of the team and are co-located. The benefits include:
- Tangible progress is visible.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 gaps.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 ambiguous.
- 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, scripting, etc.
- 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 challenges, etc.
- It helps you avoid document debt.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 documentation.
- 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 contributes to your ability to compete on the basis of speed.