Return to Video

Lecture 5.2: Design Heuristics (Part 1/2) (20:02)

  • 0:02 - 0:06
    So far we’ve talked a lot about strategies and techniques for designing user interfaces
  • 0:06 - 0:09
    and we’ve talked a little bit about high-level principles.
  • 0:09 - 0:11
    What I’d like to do now is to kind of dive deep
  • 0:11 - 0:15
    and get down to brass tacks and talk about a number of concrete examples.
  • 0:15 - 0:20
    And so these lectures are going to offer two benefits simultaneously:
  • 0:20 - 0:23
    First, what I’d like to do in these next couple of lectures
  • 0:23 - 0:32
    is introduce a set of design heuristics for identifying interface errors and strategies for correcting them.
  • 0:32 - 0:37
    Second, I’d like to walk you through a number of examples of actual user interfaces,
  • 0:37 - 0:42
    and talk about particular ways in which they’re successful or have problems.
  • 0:42 - 0:46
    Now, these are all screen shots that I’ve gathered over several years.
  • 0:46 - 0:52
    I keep a big file of interfaces that I think are effective or have problems,
  • 0:52 - 0:56
    and it’s a good activity — I encourage you to do the same thing.
  • 0:56 - 0:59
    For any voyeurs out there, you’ll get a sense of interfaces
  • 0:59 - 1:02
    that I’ve stumbled across over the last several years —
  • 1:02 - 1:04
    not a very exciting list, but, hey.
  • 1:04 - 1:08
    And all of these interfaces are things that may come up again
  • 1:08 - 1:11
    when we talk about visual design and other principles.
  • 1:11 - 1:16
    So some of these screen shots you’ll see multiple times in this class.
  • 1:16 - 1:22
    Finally, I’d like to emphasize that we really want to focus on narrow issues in these user interfaces.
  • 1:22 - 1:26
    And I’m not going to talk about whether the broader ecosystem
  • 1:26 - 1:30
    that the particular thing we’re looking at is effective or not.
  • 1:30 - 1:36
    So, we may point out flaws in interfaces that are on the whole exemplary,
  • 1:36 - 1:43
    or we may point out successes in interfaces that are on the whole not quite so good.
  • 1:43 - 1:46
    And finally, because I’ve gathered these screen shots over a number of years,
  • 1:46 - 1:49
    many of these interfaces no longer look like this.
  • 1:49 - 1:56
    The point is not the current state of an interface, but rather the didactical of teaching you a principle.
  • 1:56 - 1:59
    Here are the ten design heuristics that we’re going to talk about.
  • 1:59 - 2:01
    Some of these names are mine.
  • 2:01 - 2:05
    The principles are based on Jakob Nielsen’s work in heuristic evaluation;
  • 2:05 - 2:10
    I’ve simply relabeled a few of them to make them, I think, clearer and shorter.
  • 2:12 - 2:14
    And so let’s jump in.
  • 2:14 - 2:17
    The first of these principles is “show system status.”
  • 2:17 - 2:21
    I think one of the most important things you can do in user interface design
  • 2:21 - 2:29
    is provide excellent feedback about where the system is and where the user is in a larger interaction flow.
  • 2:29 - 2:34
    One important thing to provide feedback about is where the user is in time.
  • 2:34 - 2:39
    If you have an interactive system where the response time is less than a second or so,
  • 2:39 - 2:43
    there is no need to have intermediate feedback: It just feels interactive.
  • 2:43 - 2:48
    As you get to something that’s on the order of a second or a couple of seconds,
  • 2:48 - 2:53
    it becomes important to provide some kind of feedback that an activity is underway.
  • 2:53 - 2:57
    You can think of this as hourglass or a spinning ball,
  • 2:57 - 3:00
    and if you get to something that’s more than a couple of seconds,
  • 3:00 - 3:05
    it’s useful to show progress of how far along in an activity that user is.
  • 3:05 - 3:09
    Here we see an example from an installation of a piece of software.
  • 3:09 - 3:15
    And you can see the same thing if you ask a user to fill out a survey or when they’re completing their taxes,
  • 3:15 - 3:20
    or any other process that takes a long time or may require multiple steps of input.
  • 3:20 - 3:27
    You’ll want to give people feedback about how far through the system is and how far through they are.
  • 3:29 - 3:35
    Second important category of things to provide feedback about and to show to the user is space.
  • 3:35 - 3:42
    Here’s a screen shot from Gmail which notifies me that I was out of the space allocated to me
  • 3:42 - 3:46
    and that means that I need to do something about it.
  • 3:46 - 3:50
    The third important thing to show people feedback about is change.
  • 3:50 - 3:54
    Here we have a dialog box that says, “You’ve changed this document.
  • 3:54 - 3:57
    Do you want to save those changes or don’t save them.”
  • 3:57 - 4:01
    Our fourth category is action. Here’s a stoplight.
  • 4:01 - 4:04
    So the red light means stop; the green light means go.
  • 4:04 - 4:10
    And I like this user interface, because it uses a redundant coding to provide feedback to the user.
  • 4:10 - 4:15
    So the red light is not only using red as a color, but it’s up at the top of the screen;
  • 4:15 - 4:19
    and the green light is also always at the bottom.
  • 4:19 - 4:24
    And this consistency in the dual coding both makes it faster to recognize
  • 4:24 - 4:27
    and it helps work for a broader class of users —
  • 4:27 - 4:32
    for example, not all users may be able to distinguish red from green.
  • 4:32 - 4:37
    Especially in an online world, it can be important to show feedback about next steps.
  • 4:37 - 4:42
    Here’s a screen shot from Amazon that says “Your message was sent to the seller
  • 4:42 - 4:45
    and a copy was sent to the email address of your account.
  • 4:45 - 4:48
    The seller will respond to you directly via email.”
  • 4:48 - 4:52
    So we’re letting the user know what’s going to happen next.
  • 4:52 - 4:56
    That’s important because otherwise you can wonder, “Was the message actually sent?”
  • 4:56 - 4:58
    or, “Did anybody get it?”
  • 4:58 - 5:01
    or “When they receive it, what are they going to do?”
  • 5:01 - 5:06
    This lays out very clearly what has happened and what will happen next.
  • 5:06 - 5:09
    And after you’ve crossed time, space, change, actions, and next steps,
  • 5:09 - 5:12
    the last thing that you’ll want to show is completion.
  • 5:12 - 5:15
    I also like this dialog box because it’s funny.
  • 5:15 - 5:18
    And a little bit of humor can be really effective in user interfaces.
  • 5:18 - 5:23
    Our second heuristic is to use familiar metaphors and language.
  • 5:23 - 5:28
    And often this can mean trying to provide a match in the interface
  • 5:28 - 5:32
    with things that people are familiar with from their real-world experience.
  • 5:32 - 5:35
    This also means speak the user’s language,
  • 5:35 - 5:40
    and follow conventions that they’re familiar with both in the online world and in the real world.
  • 5:40 - 5:43
    One important kind of familiarity is metaphors.
  • 5:43 - 5:50
    In this interface, I want to call your attention to the world in miniature that’s being used in the print dialog box,
  • 5:50 - 5:55
    and that’s an effective user interface, because it makes very clear
  • 5:55 - 6:01
    which pieces of the page are going to to be cropped, and which pieces of the page are going to to be printed.
  • 6:01 - 6:05
    In general, one of the successes of the graphical user interface
  • 6:05 - 6:11
    is that it leverages a lot of real-world metaphors, like desktop and trash and files and folders.
  • 6:11 - 6:18
    And if these are activities that users are familiar with, it can help bring them into a new online world.
  • 6:18 - 6:24
    Now over the last 25 years, as more and more people have gotten accustomed to computing,
  • 6:24 - 6:29
    some of those real-world metaphors have fallen away and newer ones have developed.
  • 6:29 - 6:37
    Remember that the reader of your interface is going to be a user and not your colleague, boss, or lawyer.
  • 6:37 - 6:43
    And consequently, work hard to identify terms and language that will be familiar to them.
  • 6:43 - 6:46
    Here’s a screenshot from a student loan website.
  • 6:46 - 6:50
    And it uses two terms that at least I was unfamiliar with —
  • 6:50 - 6:54
    It talked about me being I already enrolled in “Electronic Correspondence.”
  • 6:54 - 7:01
    And it said that I was not eligible for “Electronic Bill Presentment.”
  • 7:01 - 7:05
    What it really means by this, I think, is just “email,” and so it should say that.
  • 7:05 - 7:12
    And I don’t think of myself as being “enrolled” in an “email correspondence service.”
  • 7:12 - 7:16
    It would be nicer if it just said “We’re sending you email.”
  • 7:16 - 7:22
    And there’s some fine print about why I’m not eligible for “Electronic Bill Presentment.”
  • 7:22 - 7:28
    It would be much clearer if, for starters, it actually identified the reason:
  • 7:28 - 7:33
    in my particular case this has passed a log-in wall, and so it knows the reason.
  • 7:33 - 7:38
    And it would be nicer if it was able to use more common terms,
  • 7:38 - 7:47
    like “We’re unable to send you bills and email because,” maybe, “we don’t have an address on file.”
  • 7:47 - 7:50
    And it’s important to use familiar categories.
  • 7:50 - 7:55
    Here’s an example from a Visa website that asks users to select a state.
  • 7:55 - 8:01
    And, I got a kick out of it because there are more than 50 states here —
  • 8:01 - 8:06
    in fact, there’s a separate listing for Northern California and Southern California.
  • 8:06 - 8:10
    And many people in San Francisco might wish
  • 8:10 - 8:13
    that Northern California and Southern California were different states;
  • 8:13 - 8:19
    and for many people, which of those they live in or believe they live in is clear.
  • 8:19 - 8:25
    But for some users, this may be ambiguous, and it would probably be simpler if you just selected California
  • 8:25 - 8:30
    and then the system decided whether it use its Southern California routing
  • 8:30 - 8:34
    or Northern California routing, based on the address that you provide later.
  • 8:34 - 8:40
    And it’s important that the choices that you offer to people are things that they’re likely to be familiar with.
  • 8:40 - 8:46
    Here is a dialog box that says that “You have a document encoding mismatch.
  • 8:46 - 8:53
    You’ve got a document which describes itself as being UTF-8, no BOM.
  • 8:53 - 8:57
    But, the encoding has been set to Western, ISO Latin-1.
  • 8:57 - 9:01
    Now this is a developer tool,
  • 9:01 - 9:06
    and so it’s reasonable to expect some fluency with things that are under the hood —
  • 9:06 - 9:13
    like, users may in general be familiar with the idea that there are different character sets for documents —
  • 9:13 - 9:22
    but users may be not familiar with what exactly the difference is between UTF-8 no BOM and ISO Latin-1,
  • 9:22 - 9:29
    or which of them they should select, or how exactly they should go about fixing this problem.
  • 9:29 - 9:36
    One way that this interface could be improved is beaconing what the most common solution is likely to be.
  • 9:36 - 9:41
    Our third heuristic is user control and freedom, and this is going to encompass a number of things —
  • 9:41 - 9:49
    like exits for mistaken choices, the ability to undo and redo, not forcing people down fixed paths.
  • 9:49 - 9:52
    I think of this heuristic as being about making sure
  • 9:52 - 9:58
    that the amount of control and freedom is appropriate for the users and appropriate for the tasks.
  • 9:58 - 10:03
    So for example, if you have an interface that somebody’s only going to use once,
  • 10:03 - 10:07
    a relatively constrained wizard may actually be a good solution.
  • 10:07 - 10:10
    However, you may also want a way for users
  • 10:10 - 10:15
    to break out of that constrained wizard if they know what they’re doing and are more expert,
  • 10:15 - 10:21
    or have an uncommon or unique activity that they need to accomplish.
  • 10:21 - 10:25
    Here’s an example from a conference registration site,
  • 10:25 - 10:30
    and what you can see is that there’s a Continue button, but no Back button.
  • 10:30 - 10:37
    Here’s an interface that provides more control and freedom in the context of browsing for airline tickets.
  • 10:37 - 10:41
    What you see here is that there are a number of different ways
  • 10:41 - 10:46
    in which the user can browse through the space of possible information.
  • 10:46 - 10:50
    In particular you can see this calendar widget in the top left
  • 10:50 - 10:54
    which shows you the fares for every day of that month.
  • 10:54 - 11:00
    And this ability to preview what’s likely to be down a particular path is really valuable
  • 11:00 - 11:06
    in helping people make decisions and know what options are available to them.
  • 11:06 - 11:09
    Our fourth heuristic is consistency and standards.
  • 11:09 - 11:12
    And this includes things like consistent layout.
  • 11:12 - 11:20
    Here’s a screenshot of a very old set of dialog box options from Microsoft’s Visual Basic.
  • 11:20 - 11:23
    This is many years old at this point.
  • 11:23 - 11:29
    It’s pedagogically useful, because there are four different options for where the same set of buttons could be.
  • 11:29 - 11:33
    And probably, applications will be easiest to learn
  • 11:33 - 11:39
    if users can come to expect that the same buttons will always be in the same locations.
  • 11:39 - 11:42
    We talked already about familiar language.
  • 11:42 - 11:45
    It’s also important to be consistent in your use of language.
  • 11:45 - 11:50
    And one thing that I’ve seen on the forums is, in teaching this class,
  • 11:50 - 11:55
    whenever we’ve used terms interchangeably, that’s often been a source of confusion.
  • 11:55 - 11:58
    And you can see that in this web site.
  • 11:58 - 12:04
    I arrived at this screen because I wanted to get help with a USB cellular modem that I had,
  • 12:04 - 12:10
    and I couldn’t figure out which of these categories was most likely to be the right one.
  • 12:10 - 12:16
    My guess is that these categories were generated based on organizational chart for the business
  • 12:16 - 12:21
    rather than based on the user’s conceptual model of what they cared about.
  • 12:21 - 12:25
    So, for example, national access and broadband access
  • 12:25 - 12:30
    may be different parts of a business and have different management structures;
  • 12:30 - 12:34
    but from a user’s perspective, they may not know
  • 12:34 - 12:39
    whether the mobile device they have is in one category or the other.
  • 12:39 - 12:42
    So how do you solve this naming problem?
  • 12:42 - 12:47
    Because I think that, once you get familiar with your own products and designs,
  • 12:47 - 12:51
    it’s easy to refer to them using the terms that you’re familiar with.
  • 12:51 - 12:56
    And, to some extent, eventually training people up on these terms will be useful for everyone.
  • 12:56 - 13:01
    However, you’ll often want to elicit what terminology users use naturally
  • 13:01 - 13:03
    and ensure sure that you use that consistency.
  • 13:03 - 13:06
    This is actually a case where field work, or focus groups,
  • 13:06 - 13:09
    or other kinds of direct user engagement can be really valuable,
  • 13:09 - 13:15
    and you can ask people how they would describe certain things that they might want to get help with.
  • 13:15 - 13:20
    Another thing that you can do is if you prefer a more web-based strategy,
  • 13:20 - 13:26
    you can have a category initially that you call Other, and let people type in whatever they want.
  • 13:26 - 13:30
    And then you can look at the set of responses that come in for Other,
  • 13:30 - 13:36
    and use that to generate umbrellas terms that may be more user centered in terms of the language they use.
  • 13:36 - 13:41
    Here is a screenshot of a license repair utility, and it has a warning about the fact
  • 13:41 - 13:47
    that you’ll need to close all other Adobe applications before proceeding with the license repair utility.
  • 13:47 - 13:55
    It’s a reasonable constraint, and it says, “Do you wish to…” blank — I have blocked it out.
  • 13:55 - 13:59
    “Yes” or “No?”
  • 13:59 - 14:04
    My guess is that a good fraction of you — maybe even most of you —
  • 14:04 - 14:10
    would guess that [for] “Do you wish to…” the next thing would be “continue.”
  • 14:10 - 14:13
    And so you might press Yes.
  • 14:13 - 14:16
    However, what we actually have here is “Do you wish to cancel.”
  • 14:16 - 14:20
    And so, if you pressed Yes to continue.
  • 14:20 - 14:23
    It’s going to drop you out of the application and you’ll wonder what happened.
  • 14:23 - 14:26
    Or if you pressed No, with the intent to cancel,
  • 14:26 - 14:30
    you’ll actually continue, and you may run into problems.
  • 14:30 - 14:36
    In this particular case, one way that you can solve this problem about what Yes or No or OK or Cancel mean
  • 14:36 - 14:41
    is to replace Yes, No, OK and Cancel with more specific options.
  • 14:41 - 14:44
    So here we see a dialog box where the options are very clear:
  • 14:44 - 14:51
    One button says “Keep .do” as the extension name; the other one says “Use .pdf”.
  • 14:51 - 14:55
    And this is much clearer then OK and Cancel, or Yes and No.
  • 14:55 - 15:01
    Our fifth heuristic is about preventing errors, and there are lots of errors that are easy to make,
  • 15:01 - 15:05
    and there are lots of ways that your interface can help people prevent them.
  • 15:05 - 15:09
    The first kind of error to prevent people from making is data loss.
  • 15:09 - 15:14
    Here we have a dialog box that says “This file already exists,”
  • 15:14 - 15:20
    and it follows our message of having concrete button names — That’s good.
  • 15:20 - 15:23
    However, I don’t know what that file looks like.
  • 15:23 - 15:30
    If it offered me a preview, it’s much less likely that I would mistake what that file is.
  • 15:30 - 15:34
    In addition to preventing data loss, you can also prevent cluttering duplicates.
  • 15:34 - 15:37
    Here’s a screenshot that helpfully notifies you that
  • 15:37 - 15:41
    this may be a duplicate paper that you’re trying to import into a library.
  • 15:41 - 15:45
    So it says, “Hey, you’ve already got this on your computer.”
  • 15:45 - 15:51
    And so far as it goes, that’s great; but what I want to know is:
  • 15:51 - 15:55
    Is what it thinks is a duplicate actually a duplicate?
  • 15:55 - 16:01
    And so one button that ought to be available here and that isn’t, and that would help me prevent errors,
  • 16:01 - 16:05
    is by having of way of previewing what it believes the duplicate file to be,
  • 16:05 - 16:09
    and allows me to compare the two files, side by side.
  • 16:09 - 16:13
    Here’s a dialog box that says “You have unsaved data.
  • 16:13 - 16:18
    Click OK to go back and save, or click Cancel to continue.”
  • 16:18 - 16:23
    There’s a couple of problems here: For starters, we’ve got the “click Cancel to continue,”
  • 16:23 - 16:28
    which I think may confuse many people, and they’ll consequently lose their unsaved data.
  • 16:28 - 16:35
    Also, why isn’t Save one of the options on the dialog box? That would make a lot more sense.
  • 16:35 - 16:38
    There are many ways we could redesign this dialog box.
  • 16:38 - 16:43
    You could think about automatically saving things, or many other more drastic solutions.
  • 16:43 - 16:51
    A simple solution that we can make here is to relabel this first button to be — call this…
  • 16:51 - 16:56
    “Save,” and the other button we might call…
  • 16:56 - 17:04
    “Don’t Save, Just continue.”
  • 17:04 - 17:08
    And we will probably want the “Save” button to be the default action.
  • 17:08 - 17:12
    One of the great advantages of a graphical user interface
  • 17:12 - 17:18
    is that it can leverage its visual structure to enforce that users provide well-formed input
  • 17:18 - 17:21
    and to remind them about what parameters are necessary.
  • 17:21 - 17:25
    So this, for example, is the Find dialog box in Apple’s Keynote,
  • 17:25 - 17:30
    and you can contrast that with the Find command in the terminal.
  • 17:30 - 17:38
    In the graphical case, anything you can type into the dialog box will be a reasonable query to search for;
  • 17:38 - 17:42
    it’s impossible to have incorrect syntax.
  • 17:42 - 17:47
    However, in the terminal case, you have to remember every time what exactly the syntax is.
  • 17:47 - 17:51
    Now the terminal has lots of power and is great in lots of ways.
  • 17:51 - 17:57
    But the ability to make errors in terms of your syntax is one of its drawbacks.
  • 17:57 - 18:01
    But that doesn’t mean that just because you have a graphical interface,
  • 18:01 - 18:05
    it automatically will have this property of preventing errors.
  • 18:05 - 18:09
    This is an example of a scheduling system, and the task that we’re midstream on
  • 18:09 - 18:13
    is trying to schedule a weekly meeting into a conference room.
  • 18:13 - 18:19
    And there are some things that you need to fill out that it has explicit dropdowns for, like time and room.
  • 18:19 - 18:25
    However, the day field is required; it won’t let you schedule for every day..
  • 18:25 - 18:29
    But it doesn’t provide much in the way of widgets to do that;
  • 18:29 - 18:33
    and so if the user is in a hurry, they might forget to enter a day
  • 18:33 - 18:37
    and it’ll give an error like this that says “No day is specified.”
  • 18:37 - 18:44
    And what’s shocking is when you get to this point, it doesn’t give you a chance to specify the day.
  • 18:44 - 18:49
    So, there are several ways that we might simply revise this interface.
  • 18:49 - 18:54
    One is that we might make the day selection widget clearer and more salient.
  • 18:54 - 19:00
    And the other thing is, if somehow somebody forgets to specify a day,
  • 19:00 - 19:05
    the next thing that we show them would be an option to select which of the days that we want,
  • 19:05 - 19:08
    as opposed to just saying, “No, I’m sorry you did it wrong.”
  • 19:08 - 19:13
    And it’s not clear at this point how you would go back or start over to modify.
  • 19:13 - 19:17
    Here’s an example of a search system that provides unnecessary constraints.
  • 19:17 - 19:23
    I was searching for my colleague Dan Olson’s book, so I typed Olson into the search field, and Enter.
  • 19:23 - 19:27
    And I was hoping that it would give me a list of books, and I could select from among them.
  • 19:27 - 19:33
    However, it says, “No, I’m sorry, you must select a catalog to begin your search in.”
  • 19:33 - 19:39
    There are a number of implementation reasons why it might be preferable to select a catalog.
  • 19:39 - 19:44
    And in fact, once we get going, I may even want to narrow by catalog to improve the quality of my options.
  • 19:44 - 19:49
    But it doesn’t seem like you should need to select a catalog to get started —
  • 19:49 - 19:52
    at least give me some results based on any input.
  • 19:52 - 19:58
    That’s one thing that I think search systems, when implemented well, do a fantastic job of.
  • 19:58 - 20:02
    We’ll continue our tour of the heuristics in the next video.
Title:
Lecture 5.2: Design Heuristics (Part 1/2) (20:02)
Video Language:
English

English subtitles

Revisions