Usability in Software Design
Summary: This paper introduces the concept of usability and why it should be an important part of any software design project. (8 printed pages)
Frequently Asked Questions
Putting Usability to Work
The term “usability” in the context of creating software represents an approach that puts the user, rather than the system, at the center of the process. This philosophy, called user-centered design, incorporates user concerns and advocacy from the beginning of the design process and dictates that the needs of the user should be foremost in any design decisions.
The most visible aspect of this approach is usability testing, in which users work and interact with the product interface and share their views and concerns with the designers and developers.
This paper discusses the concept of usability and why it should be an important part of any software design project. The first part of the paper defines what usability means in the context of software development and how it relates to other measures of product value. The next section answers some common questions about why usability is important and how to incorporate user-centered design principles into the development process. The paper concludes with a list of books, articles, and organizations that can help you learn more about usability and put it to work on your project.
Most of the principles in this paper apply both to retail and internal software development. As you read further, pay attention to words like “user” and “product” and think about how they apply to your own projects and the people who eventually will use them.
Ease of Use
Usability is a measure of how easy it is to use a product to perform prescribed tasks. This is distinct from the related concepts of utility and likeability.
Usability vs. Utility
A central attribute that determines a product’s acceptability is usefulness, which measures whether the actual uses of a product can achieve the goals the designers intend them to achieve. The concept of usefulness breaks down further into utility and usability. Although these terms are related, they are not interchangeable.
Utility refers to the ability of the product to perform a task or tasks. The more tasks the product is designed to perform, the more utility it has.
Consider typical Microsoft® MS-DOS® word processors from the late 1980s. Such programs provided a wide variety of powerful text editing and manipulation features, but required users to learn and remember dozens of arcane keystrokes to perform them. Applications like these can be said to have high utility (they provide users with the necessary functionality) but low usability (the users must expend a great deal of time and effort to learn and use them). By contrast, a well-designed, simple application like a calculator may be very easy to use but not offer much utility.
Both qualities are necessary for market acceptance, and both are part of the overall concept of usefulness. Obviously, if a program is highly usable but doesn’t do anything of value, nobody will have much reason to use it. And users who are presented with a powerful program that is difficult to use will likely resist it or seek out alternatives.
Usability testing helps you determine how easy it is for users to perform particular tasks. However, it does not directly help you determine if the product itself has value or utility. (Users may volunteer utility-related comments during usability testing, but any comments should be verified with other, more robust research methods.)
Liking It vs. Using It
Likeability is always a desirable trait in a product. If people like the product, they are more likely to use it and to recommend it to others. But as with utility, you should be careful not to confuse likeability with usability.
People often like a product for reasons unrelated to utility and usability. They may be attracted to its styling and flash, or to the status they believe the product confers upon them. People tend to like highly usable products, but you should not assume that means a well-liked product is usable.
Usability is about whether a person can use the product to perform the tasks they need to perform. Usability testing primarily measures performance, not preference. However, standardized questionnaires can be used to measure preference across products.
Discovery vs. Learning vs. Efficiency
There are many aspects to usability, but traditionally the term refers specifically to the attributes of discovery, learning, and efficiency.
Discovery involves looking for, and finding, a product’s feature in response to a particular need. Usability testing can determine how long it takes a user to find a feature and how many errors (wrong choices about location) the user makes along the way.
Learning refers to the process by which the user figures out how to use a discovered feature to complete the task at hand. Usability testing can determine how long this process takes as well as how many errors the user makes while learning the feature.
Efficiency refers to the point at which the user has “mastered” the feature and uses it without requiring further learning. Usability testing can determine how long it takes for the experienced user to execute the steps necessary to use the feature.
These three basic aspects of usability are strongly influenced by the nature of the task at hand and the frequency with which the user performs it. Some features are used so seldom or are so complex that the user essentially relearns them every time; for these features, Microsoft often develops wizards to guide the user through the process.
Slogans Don’t Work
Software designers sometimes think that simple edicts or slogans like “make the product more usable” will help solve usability problems. While a positive attitude toward usability is important, only proper usability testing with ordinary users, in the context of the specific product being created, can provide designers with the information they need to create a product that will fulfill the users’ needs. “Make the product more usable” should be the dictum of every software designer, but it only makes sense if the designer knows what “usability” means. Testing with ordinary users is the most reliable way to find out.
Frequently Asked Questions
Why Should I Care?
If you haven’t already incorporated usability considerations into your product design process, you might wonder why it is necessary or desirable. After all, it’s certainly possible to release a working, bug-free product without performing any usability work at all. But incorporating user-centered design principles can lead to a much-improved product in several areas.
The best reason to perform usability testing is to reduce the number of support calls from users. Poor usability is a major reason why users call software technical support lines, and every software company executive and Information Services manager knows how expensive product support can be. Plus, charging users for support increases potential dissatisfaction with the product. If users find it easy to use your product, they will not need to call for technical support as often.
For software produced for in-house use, the next best reason to make usability an important part of the development process is to reduce training costs. A highly usable product is much easier for users to learn than one for which usability was not a high priority. Users learn features more quickly and retain their knowledge longer, which directly correlates to decreased training costs and time.
Usability testing helps improve user acceptance. Acceptance results from a number of factors, including usability, utility, and likeability. For retail products, user acceptance often directly correlates to repeat buying or to loyalty, which means the user is likely to recommend the product to others. For internal applications, user acceptance correlates to a willingness to use the software to perform the tasks for which it was designed, which helps increase productivity. Increasing usability is one of the factors that can contribute to increased user acceptance.
Usability can help differentiate your products from those of your competitors. If two products are substantially equal in utility, the product with more usability will probably be regarded as superior. In addition, the Microsoft® Windows® look and feel and accompanying programming guidelines have leveled the playing field for the basic user interface, so many programs that serve similar functions look and act somewhat alike. These similarities mean that small differences in usability can have a big effect on user preference.
Finally, remember that every product gets tested for usability—eventually. Users perform usability testing on your product every time they use it, and they render their verdict through their continued use or lack thereof. By testing the product before releasing it to market, you can help ensure that users’ experiences with the product will be positive.
What Does It Cost?
Software designers and project managers often worry that initiating a user-centered design process and performing proper usability testing will require unacceptable amounts of time and money. The reality is that the cost in time and money spent focusing on the user is often relatively small, and certainly so when compared to the cost of not doing it.
Consider, for example, the cost in time and money of making design revisions late in the development cycle as opposed to earlier, when the product is still on the drawing board. If you wait until the beta period to expose users to the product for purposes of usability testing, you may find yourself dismantling parts of the program that took a lot of time to develop. And waiting until the product is actually released and then making changes based on negative feedback or supporting a poor design could make the cost immeasurably higher due to high product-support costs or poor reception by users.
A reasonable usability study usually can be performed in about two weeks or less, and can greatly reduce the time and cost of making changes late in the development cycle. The cost of performing testing will vary depending on the nature of your product and the parts of the interface that you would like to test.
You can think of usability testing as being akin to code testing. Successful project managers account for code testing when planning a development project. They don’t see it as something extra that must be tacked on to the project schedule and budget. Rather, project managers accept code testing as a cost of doing business because the alternative is so much more expensive. The same applies to usability testing.
How Do I Get Some?
Upon reading and understanding the importance of usability, software designers sometimes are tempted to “get some” usability, as if it were an ingredient that they simply can add to a product to make it more usable. Instead, usability should be part of the design process itself, rather than a “thing” that you add to the process here or there. The reason that usability experts refer to “user focus” and “user-centered design” is that usability depends on keeping the needs of users central to the design process. User-centered design by necessity involves more than just following a set of rules governing button and menu placement in an interface. Usability testing is an opportunity to check your design work. It is not a way to “add” usability to your product.
Gould, Boies, and Lewis (1991) identify four important tenets of user-centered design:
- Early focus on users. Designers should concentrate on understanding the needs of the users early in the design process.
- Integrated design. All aspects of the design should evolve in parallel, rather than in sequence. Keep the internal design of the product consistent with the needs of the user interface.
- Early and continual testing. The only currently feasible approach to software design is an empirical one: the design works if real users decide it works. Incorporating usability testing throughout the development process gives users a chance to deliver feedback on the design before the product is released.
- Iterative design. Big problems often mask small problems. Designers and developers should revise the design iteratively through rounds of testing.
Why Should We Involve Users?
Designers should recognize that they are not typical users. They have more intimate knowledge and understanding of the system they are developing than the average user ever will. Aspects of the interface that are unclear or confusing to most users might therefore be perfectly clear to someone who has worked on the project. Some software designers are able to empathize with the average user to a degree, but there is no substitute for the real interactions of actual users with the product.
Accordingly, by focusing on typical users’ needs early and revising the design based on user testing often, user-focused software designers produce better designs and, as a result, better products.
With a better design comes better acceptance from users. The benefit of increased buy-in with retail software is obvious: increased sales. Acceptance is also important with software developed for internal use: increased buy-in leads to increased productivity and a diminished need for support. Visibly involving users from the beginning of development also shows them that you are interested in their concerns and needs, which increases their willingness to help you develop better software.
Can’t I Just Follow Guidelines?
Microsoft has developed a set of interface guidelines for the Windows computing platform to ensure that Windows programs have a consistent look and feel. Other companies have developed similar guidelines for other computing platforms, and usability experts like Jakob Nielsen have written extensively on designing usable Web pages. With the wealth of information available on these topics, designers sometimes believe rigorous adherence to guidelines and standards is all that is necessary to produce usable products.
The problem with this approach is that guidelines are inherently general. Guidelines must apply to a wide variety of cases and therefore don’t always prescribe the best course of action for the particular application you are designing. Adhering to a well-written set of guidelines may help you design a consistent interface, but you can’t be sure it’s usable unless you test it with real users. When you do use guidelines, don’t use them like you would a cookbook, expecting a guideline to point the way toward the best of all outcomes. Two designers can implement the same guideline in two different ways, and both implementations might not be equally appropriate for the situation. And occasionally, rigorous adherence to guidelines can lead to poor results, or to conflicts between guidelines. Only user-centered design can help flush these issues out before they become problems.
Another way of thinking about this is: Let user-centered design be the arbitrator of design decisions, not user interface guidelines.
Do I Need to Build a Usability Lab?
Don’t assume that usability testing means committing to an expensive lab, with ceiling-mounted cameras, one-way mirrors, and other focus-group trappings. To be sure, companies that do a lot of testing often find it convenient to build dedicated labs, and usability consultants often have a wide range of facilities and equipment to offer their clients. But you can perform useful, valid usability testing in a variety of settings and circumstances.
One approach is to simply have a tester—someone versed in performing human participant studies and collecting data—sit behind a user as he or she works and observe the user performing tasks. This can easily be performed in a conference room or an office. Dumas and Redish (1999) offer a great deal of information about testing by observation.
As you become more involved in usability testing, you can add equipment such as a video camera, a one-way mirror, or tools that allow you to view and record a user’s monitor in real time. You don’t have to add everything at once. Even installing equipment piece by piece can help you get more value out of your usability tests.
Alternatively, you can outsource your testing to usability consultants. See “How Do I Get Started?” below for tips on finding the right consultants for you.
How Do I Get Started?
Once you’ve decided to incorporate user-centered design principles into your development process, you will need to decide whether to hire usability professionals yourself or outsource your usability testing to a vendor.
The Usability Professionals Association (UPA) has a vendor guide that can help you find usability consultants to perform your testing for you.
Some consulting groups also can help you set up your own usability labs or develop an in-house usability program to incorporate usability principles into your design process.
If you would rather hire usability professionals yourself, the Human Factors and Ergonomics Society has a placement service that can help you find potential employees. Many usability professionals also belong to ACM Special Interest Group on Computer-Human Interaction (SIGCHI) and UPA. You can place employment ads in their publications or at their conferences.
Whichever route you choose to take, remember that you will be hiring testing services, as opposed to people who will assess your interface themselves and tell you what is wrong with it. The principle that designers aren’t typical users is also true of usability professionals.
See “Resources,” below, for information on these companies and organizations and to find out more about usability testing and user-centered design.
Articles and Books
Beyer, Hugh, and Karen Holtzblatt. Contextual Design: Defining Customer-Centered Systems. San Francisco: Morgan Kaufmann, 1997. (ISBN: 1558604111)
Dumas, Joseph S., and Janice C. Redish. A Practical Guide to Usability Testing. London: Intellect Books, 1999. (ISBN: 1841500208)
Gould, John D., Stephen J. Boies, and Clayton Lewis. "Making Usable, Useful, Productivity: Enhancing Computer Applications." Communications of the ACM (January 1991): 72-86.
Hackos, JoAnn T., and Janice C. Redish. User and Task Analysis for Interface Design. New York: John Wiley and Sons, 1998. (ISBN: 0471178314)
Nielsen, Jakob. Usability Engineering. Boston: AP Professional, 1994. (ISBN: 0125184069)
Shneiderman, Ben. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Reading, MA: Addison Wesley, 1998. (ISBN: 0201694972)
- ACM Special Interest Group on Computer-Human Interaction (SIGCHI): The largest organization of UI practitioners.
- British HCI Group: A specialist group of the British Computer Society. See the consultancy listing for contract resources.
- Human Factors and Ergonomics Society.
- Usability Professionals Association: See their consultant directory for contract resources.