Fundamentals of Designing User Interaction - Design Principles and Methodology
Effective interface design is more than just following a set of rules. It requires a user-centered attitude and design methodology. It also requires early planning of the interface and continued work throughout the development process.
An important consideration in the design of an application is the composition of the team that develops and builds it. Always try to balance disciplines and skills, including development, visual design, writing, human factors, and usability assessment. Rarely are all these characteristics found in a single individual, so create a team of individuals who specialize in each area and who can contribute uniquely to the final design.
Ensure that the design team can effectively work and communicate together. Locating them in close proximity or providing them with a common area to work out design details often fosters better communication and interaction.
An effective user-centered design process involves a number of important phases: designing, prototyping, testing, and iterating. The following sections describe these phases.
Design
The initial work on a software’s design can be the most critical. During this phase, you decide the general shape of your application. If the foundation work is flawed, it is difficult to correct later.
This part of the process involves not only defining your application’s objectives and features, but understanding who your users are and their tasks, intentions, and goals. For example, an order-entry system may have very different users and requirements than an information kiosk. Designing for your users involves understanding the following factors:
At this point, begin defining the conceptual framework to represent your application with the knowledge and experience of your target audience. Ideally, you should create a design model that fits the user’s conceptual view of the tasks to be performed. Consider the basic organization and different types of metaphors that can be used. Observing users at their current tasks can provide ideas about effective metaphors.
Document your design. Writing down your design plan not only provides a valuable reference and form of communication, but often helps make the design more concrete and reveals issues and gaps.
Prototype
After you have defined a design model, prototype some of the basic aspects of the design. This can be done in a variety of ways:
A prototype is valuable in many ways. It provides an effective tool for communicating the design. It can help you define task flow and better visualize the design. And it provides a low-cost vehicle for getting user input on a design. This is particularly useful early in the design process.
The type of prototype you build depends on your goal. Functionality, task flow, interface, operation, and documentation are just some of the different aspects of an application that you may need to assess. For example, pen-and-paper models or storyboards may work when you are defining task organization or conceptual ideas. Operational prototypes are usually best for the mechanics of user interaction.
Consider whether to focus your prototype on breadth or depth. The broader the prototype, the more features you should try to include to gain an understanding about how users react to concepts and organization. When your objective is focused more on detailed usage of a particular feature or area of the design, use depth-oriented prototypes that include more detail for a given feature or task.
Test
Usability testing a design, or a particular aspect of a design, provides valuable information and is a key part of an application’s success. Usability testing is different from quality assurance testing in that, rather than finding programming defects, you assess how well the interface fits user needs and expectations. Of course, defects can sometimes affect how well the interface will fit.
There can be different reasons for testing. You can use testing to look for potential problems in a proposed design. You can also focus on comparative studies of two or more designs to determine which is better given a specific task or set of tasks.
Usability testing provides you not only with task efficiency and success-or-failure data, it can also provide you with information about the user’s perceptions, satisfaction, questions, and problems, which may be just as significant as the ability to complete a particular task.
When you test your design, it is important to use participants who fit the profile of your target audience. Using fellow workers from down the hall might be a quick way to find participants, but software developers rarely have the same experience as their customers. For details about conducting a usability test, see "Usability Assessment in the Design Process" later in this chapter.
Iterate
Because testing often uncovers design weaknesses, or at least provides additional information you will want to use, repeat the entire process, taking what you have learned and reworking your design or moving on to reprototyping and retesting. Continue this refining cycle throughout the development process until you are satisfied with the results. At a minimum, plan for at least one full iteration of your design and include it up front in your schedule.
During this iterative process, you can begin substituting the actual application for prototypes as the application code becomes available. However, avoid delaying your design cycle waiting for the application code to be complete enough; you can lose valuable time and input that you could have captured with a prototype. Moreover, by the time most applications are complete enough for testing, it is difficult to consider significant changes, because it becomes easier to live with usability defects due to the time resources already invested. In addition, the time resources required to make significant changes at this point may affect the application’s delivery schedule.
As described in the previous section, usability testing is a key part of the design process, but testing design prototypes is only one part of the picture. Usability assessment should begin in the early stages of development, when you can use it to gather data about how users do their work. You then incorporate your findings into the design process. As the design progresses, usability assessment continues to provide valuable input for analyzing initial design concepts and, in the later stages of application development, can be used to test specific tasks. Assess the usability of your application early and often.
Make sure you allocate adequate time in your development schedule to address the issues that may arise from your usability testing. Don’t assume that the results will always confirm your design. How you respond to what the assessment reveals determines its real value.
When you are working through the details of individual features, don’t neglect to evaluate how these integrate into the design. The usability assessment should include all of an application’s components. Consider the user’s entire experience as part of the usability assessment for your product. To help ensure overall usability, define a list of the top twenty most important and frequent tasks users should be able to do with the product, then test all of these tasks regularly. At a minimum, do this on the previous version as a baseline, then at each preliminary and final release for the product being developed.
Usability Testing Techniques
Usability testing involves a wide range of techniques and can involve an investment in resources, including trained specialists working in soundproof labs with one-way mirrors and sophisticated recording equipment. However, even the simplest investment in an office or conference room, tape recorder, stopwatch, and notepad can produce benefits. Similarly, all tests need not involve great numbers of subjects. More typically, quick iterative tests with a small, well-targeted sample and six to ten participants can identify most design problems.
Like the design process itself, usability testing begins with defining the target audience and the test goals. When you design a test, focus on tasks, not features. Even if your goal is to test specific features, remember that your customers will use those features within the context of particular tasks. It is also a good idea to do a dry run of the testing environment itself. You need to make sure that the task scenarios, prototype, and equipment run smoothly.
It is best to do usability testing in a quiet location, free from distractions. Make participants feel comfortable. Unless you have had the experience of participating in a usability test yourself, the pressure many test participants feel may surprise you. You can alleviate some tension by explaining the testing process and equipment to the participants, and by stating that your objective is to test the software, not them. Let the test participants know that if they become confused or frustrated, it is more of a reflection on the test itself than it is on them.
Give the user reasonable time to try to work through any difficult situations. Although it is generally best not to interrupt participants during a test, they may get stuck or end up in situations that require intervention. This need not necessarily disqualify the test data, as long as the test coordinator carefully guides or hints around a problem. Give general hints first before providing specific advice. For more difficult situations, you may need to stop the test and make adjustments. Keep in mind that less intervention usually yields better results. Be sure to record the techniques and search patterns that users employ while attempting to work through a difficulty, as well as the number and type of hints you use to help them.
Ask participants to think aloud as they work, so you can hear the assumptions and inferences that they are making. As they work, record the time taken to perform a task and any problems they encounter. You may also want to follow up the session with a questionnaire that asks the participants to evaluate the application or tasks they performed.
Record the test results using a portable tape recorder, or better, a video camera. Since even the best observer can miss details, reviewing the data later will prove invaluable. Recorded data also allows more direct comparisons between multiple participants. It is usually risky to base conclusions on observing a single participant. Recorded data also allows the entire design team to review and evaluate the results.
Whenever possible, involve all members of the design team in observing the test and reviewing the results. This ensures a common reference point and better design solutions as team members apply their own insights to what they observe. If direct observation is not possible, make the recorded results available to the entire team.
Other Assessment Techniques
You can use many techniques to gather usability information. In addition to those already mentioned, focus groups are helpful for generating ideas or trying out ideas. A focus group requires a moderator who directs the discussion about aspects of a task or design but allows participants to express their opinions freely. You can also conduct demonstrations, or walk-throughs, in which you take the user through a set of sample scenarios and ask their impressions along the way. In a “Wizard of Oz” technique, a testing specialist simulates the way the interface interacts with the user. Although these latter techniques can be valuable, they often require a trained and experienced test coordinator.
Fundamentals of Designing User Interaction
Design Specifications and Guidelines