Jakob Nielsen
, Sun Microsystems Distinguished Engineer, discusses the hows and whys of product usability.
Dave Andrews
BYTE:
You've studied useability and user interface design issues since 1983. Do you feel that the number of people who design products with which others interact will increase as computers become more popular?
Nielsen:
Oh yes, more people are already designing their own user interfaces, in the sense that a Web page is a user interface. The scope of user interface design has expanded dramatically because of the Web. It used to be a small set of professionals doing it. But now it's essentially everybody, because everybody seems to be designing a Web site. My analogy is that designing a Web page is quit
e similar to designing a dialog box. You want to design a set of options for the user, things like what can they click on, what can they do, what is the stream of the users attention when you're looking over this layout, whether it's a dialog box or a page layout. [Analyzing] what users look at first, what they look at second, is quite similar to designing a dialog box. Designing a Web site is similar to designing an application. Because now you have to worry not just about those detailed issues, but also about the navigation flow. How do the users move between all those different options, that's what comes into site design as opposed to page design. We now have millions of people doing this, whereas a few years ago, we had a few thousands of people doing this. Many issues and problems that we see on the Web are the same ones we've had for a long time. For example, one of the big problems with Web design is one of consistency. Consistency is one of my 10 general principles (see below), but th
ey all apply to the Web. Many of the problems we see today are very similar to the problems we had with mainframes.
BYTE:
How are the problems we see today reminiscent of the early days of mainframe computing?
Nielsen:
If you go back to the really old days of the mainframe, back then user interfaces were not done professionally. A lot of user interfaces were done by whichever programmer happened to be doing that application. And the programmers wouldn't, or didn't, talk to each other. They all thought, "My application is a unique thing." So they would assign actions to function keys that were optimal for their specific application. And then a few years later, mainframe users started using multiple applications, and now the function keys were completely inconsistent. Some applications might have the "Previous Screen" function assigned to the F3 key. But in another application, F3 might mean "Quit." That was completely inconsistent and was one of the
things that users started complaining about very heavily, that the same button would do different things in different applications. We recognized, before I started working in this field, back in the late 1970s that consistency was very important for user interface design. That rule has carried forward to today with Web design. We now have problems today that are very similar to the problems we had with mainframes.
BYTE:
Such as?
Nielsen:
Now different departments will do pages about different issues, for example, human resources information for an internal Web site, for an intranet. Someone will design a page that's a really great human resources site. But the users of this page, the employees of a company, sometimes they use human resources information, sometimes sales information, sometimes information from another department, and if things like the search button work differently in each departments' Web pages, that starts to really slow down users.
You can get more on this topic from
http://www.useit.com/papers/heuristic
Nielsen's Top 10 List
Provide status feedback.
The system should tell users what's going on. "This is particularly true for the Web, which is not yet robust and reliable."
Match between system and real world.
The system should communicate in words, phrases, and concepts that are familiar to the user.
Give users control and freedom.
"Don't trap people in a state where they cannot escape. Always have a cancel button available."
Be consistent.
"If a button for your home page is always in the same location, users don't have to figure out where it is."
Prevent errors.
This may sound
obvious, but if something is likely to lead to an error, make it difficult to do and ask confirmation questions such as, "Do you really want to do this?" But don't overdo the confirmation, or the user may get impatient and click "YES" to everything.
Make objects, actions, and options intuitive.
"Recall, where you have to remember what something does, is much more difficult than recognition, where you immediately know what something does."
Provide flexibility.
"Give experienced users shortcuts and give novice users Wizards. There should be more than one way to accomplish a task."
Practice aesthetic and minimalist design.
"Every piece of information on the screen competes with all the other information there. If something isn't necessary, remove it."
Help users recognize, diagnose, and recover from errors.
"In an error-message situation, the user is motivated to overcome a problem. Errors are a primary opportunity to teach users through informative error messages."
Provide on-line help that provides quick answers to specific questions.
photo_link (27 Kbytes)
