This article takes you from “what happens before Lo-Fi Design” (understand the user) to storyboarding (with post-it notes), through final implementation. Other steps include window design (get out the scissors) and simulated execution. This thorough, step-by-step explanation of design method is supplemented with graphics and a usability sidebar.
Building usable systems is based on a gradual progression from "lo-fidelity" paper-and-pencil-based prototypes to "hi-fidelity" working systems. Such an approach encourages exploration through low-cost tools and efficient processes until the basic structüre of the user interface has been established. This basic structure can then be validated through working systems. This approach is most effective when users are actively involved throughout the entire process from the earliest phases of the project.
Usability pays. Literally. User interfaces that allow users to efficiently and easily accomplish their tasks with a minimum of errors result in many direct and indirect benefits, including reduced training and support costs, increased productivity, and increased satisfaction. Building a highly-usable user interface is an investment that pays for itself over the life of the product.
Unfortunately, most software development methodologies fail to address usability. As a result, project teams often spend whatever resources they may have on well-intentioned but ultimately unsuccessful attempts to seriously improve usability.
This article explores the most effective techniques I've found to substantially improve usability: "lo-fi design" and simulated execution. Lo-fi design is the process of creating paper-based prototypes of a proposed user interface. Simulated execution is the process of testing these prototypes. Together, lo-fi design and simulated execution support a low-cost, rapid-iteration approach to substantially improving usability. Best of all, these techniques work well in most software development contexts. I've used them extensively on the design and implementation of several client/server software systems, while colleagues and students of mine have used them in projects ranging from computer games to the highly complex direct manipulation interfaces found in high-end computer-aided design and engineering.
What Happens Before Lo-Fi Design
Because lo-fi design deals with the issue of design, it should not be considered the first step of any development project. Regardless of the specific outcomes of your software development process, there are two essential prerequisites for lo-fi design: understanding your user, and the motivation to iterate.
- Understanding Your User The cornerstone of building highly-usable user interfaces is building as thorough an understanding of your intended users as possible. At a minimum, you should strive to understand their most important tasks (e.g., "merge departmental budgets" or "search for patents that relate to e-commerce"). Ideally, you will have detailed, step-by-step descriptions of how those tasks are normally accomplished (such descriptions are referred to as "use cases"). It is also helpful to have a model of the conceptual objects in the system (sometimes called Entity-Relationship Diagrams, Class Diagrams, or Object Models).
- Motivation to Iterate There is a wide variety of published reference material available on how to design and build user interfaces-from stuffy academic research and opinion pieces to several newer books on formalized processes. Mastery of this huge body of knowledge is not required for you to be successful using the techniques described in this article. What is required is a willingness to work with paper-based prototypes through multiple iterations. Simply put, if you can't-or won't-iterate on your designs, the lo-fi design approach won't do you much good. The process is helped considerably by a certain sense of playfulness as you explore new ideas, approaches, and options.
What is not needed is formal experience or training in user interface design, although these can certainly help. Our own daily use of user interfaces has prepared us to understand the basics, and I trust in the iterative development process to help you create highly-usable interfaces-even if you don't have formal training or experience in user interface design. That said, there are several well-accepted principles of user interface design that are easy to understand and follow, and adhering to these principles