1 00:00:01,769 --> 00:00:05,966 So far we’ve talked a lot about strategies and techniques for designing user interfaces 2 00:00:05,966 --> 00:00:08,532 and we’ve talked a little bit about high-level principles. 3 00:00:08,532 --> 00:00:10,910 What I’d like to do now is to kind of dive deep 4 00:00:10,910 --> 00:00:15,119 and get down to brass tacks and talk about a number of concrete examples. 5 00:00:15,119 --> 00:00:19,776 And so these lectures are going to offer two benefits simultaneously: 6 00:00:19,776 --> 00:00:23,080 First, what I’d like to do in these next couple of lectures 7 00:00:23,080 --> 00:00:31,676 is introduce a set of design heuristics for identifying interface errors and strategies for correcting them. 8 00:00:31,676 --> 00:00:37,019 Second, I’d like to walk you through a number of examples of actual user interfaces, 9 00:00:37,019 --> 00:00:42,362 and talk about particular ways in which they’re successful or have problems. 10 00:00:42,362 --> 00:00:45,913 Now, these are all screen shots that I’ve gathered over several years. 11 00:00:45,913 --> 00:00:52,029 I keep a big file of interfaces that I think are effective or have problems, 12 00:00:52,029 --> 00:00:56,412 and it’s a good activity — I encourage you to do the same thing. 13 00:00:56,412 --> 00:00:59,074 For any voyeurs out there, you’ll get a sense of interfaces 14 00:00:59,074 --> 00:01:02,290 that I’ve stumbled across over the last several years — 15 00:01:02,290 --> 00:01:04,306 not a very exciting list, but, hey. 16 00:01:04,306 --> 00:01:07,580 And all of these interfaces are things that may come up again 17 00:01:07,580 --> 00:01:10,854 when we talk about visual design and other principles. 18 00:01:10,854 --> 00:01:15,764 So some of these screen shots you’ll see multiple times in this class. 19 00:01:15,764 --> 00:01:21,694 Finally, I’d like to emphasize that we really want to focus on narrow issues in these user interfaces. 20 00:01:21,694 --> 00:01:26,050 And I’m not going to talk about whether the broader ecosystem 21 00:01:26,050 --> 00:01:29,882 that the particular thing we’re looking at is effective or not. 22 00:01:29,882 --> 00:01:35,732 So, we may point out flaws in interfaces that are on the whole exemplary, 23 00:01:35,732 --> 00:01:42,549 or we may point out successes in interfaces that are on the whole not quite so good. 24 00:01:42,549 --> 00:01:46,046 And finally, because I’ve gathered these screen shots over a number of years, 25 00:01:46,046 --> 00:01:48,649 many of these interfaces no longer look like this. 26 00:01:48,649 --> 00:01:55,774 The point is not the current state of an interface, but rather the didactical of teaching you a principle. 27 00:01:56,266 --> 00:01:59,315 Here are the ten design heuristics that we’re going to talk about. 28 00:01:59,315 --> 00:02:01,185 Some of these names are mine. 29 00:02:01,185 --> 00:02:05,168 The principles are based on Jakob Nielsen’s work in heuristic evaluation; 30 00:02:05,168 --> 00:02:10,481 I’ve simply relabeled a few of them to make them, I think, clearer and shorter. 31 00:02:12,356 --> 00:02:14,117 And so let’s jump in. 32 00:02:14,117 --> 00:02:17,259 The first of these principles is “show system status.” 33 00:02:17,259 --> 00:02:20,954 I think one of the most important things you can do in user interface design 34 00:02:20,954 --> 00:02:28,802 is provide excellent feedback about where the system is and where the user is in a larger interaction flow. 35 00:02:28,802 --> 00:02:34,062 One important thing to provide feedback about is where the user is in time. 36 00:02:34,062 --> 00:02:39,482 If you have an interactive system where the response time is less than a second or so, 37 00:02:39,482 --> 00:02:43,347 there is no need to have intermediate feedback: It just feels interactive. 38 00:02:43,348 --> 00:02:48,369 As you get to something that’s on the order of a second or a couple of seconds, 39 00:02:48,369 --> 00:02:53,390 it becomes important to provide some kind of feedback that an activity is underway. 40 00:02:53,390 --> 00:02:56,595 You can think of this as hourglass or a spinning ball, 41 00:02:56,595 --> 00:02:59,800 and if you get to something that’s more than a couple of seconds, 42 00:02:59,800 --> 00:03:05,195 it’s useful to show progress of how far along in an activity that user is. 43 00:03:05,195 --> 00:03:09,023 Here we see an example from an installation of a piece of software. 44 00:03:09,023 --> 00:03:15,018 And you can see the same thing if you ask a user to fill out a survey or when they’re completing their taxes, 45 00:03:15,018 --> 00:03:20,289 or any other process that takes a long time or may require multiple steps of input. 46 00:03:20,289 --> 00:03:27,217 You’ll want to give people feedback about how far through the system is and how far through they are. 47 00:03:29,493 --> 00:03:35,098 Second important category of things to provide feedback about and to show to the user is space. 48 00:03:35,098 --> 00:03:41,767 Here’s a screen shot from Gmail which notifies me that I was out of the space allocated to me 49 00:03:41,767 --> 00:03:46,252 and that means that I need to do something about it. 50 00:03:46,252 --> 00:03:50,045 The third important thing to show people feedback about is change. 51 00:03:50,045 --> 00:03:54,464 Here we have a dialog box that says, “You’ve changed this document. 52 00:03:54,464 --> 00:03:57,483 Do you want to save those changes or don’t save them.” 53 00:03:57,483 --> 00:04:00,616 Our fourth category is action. Here’s a stoplight. 54 00:04:00,616 --> 00:04:04,207 So the red light means stop; the green light means go. 55 00:04:04,207 --> 00:04:10,183 And I like this user interface, because it uses a redundant coding to provide feedback to the user. 56 00:04:10,183 --> 00:04:15,369 So the red light is not only using red as a color, but it’s up at the top of the screen; 57 00:04:15,369 --> 00:04:18,816 and the green light is also always at the bottom. 58 00:04:18,816 --> 00:04:23,927 And this consistency in the dual coding both makes it faster to recognize 59 00:04:23,927 --> 00:04:27,022 and it helps work for a broader class of users — 60 00:04:27,022 --> 00:04:32,214 for example, not all users may be able to distinguish red from green. 61 00:04:32,214 --> 00:04:37,388 Especially in an online world, it can be important to show feedback about next steps. 62 00:04:37,388 --> 00:04:41,612 Here’s a screen shot from Amazon that says “Your message was sent to the seller 63 00:04:41,612 --> 00:04:44,719 and a copy was sent to the email address of your account. 64 00:04:44,719 --> 00:04:47,673 The seller will respond to you directly via email.” 65 00:04:47,673 --> 00:04:51,557 So we’re letting the user know what’s going to happen next. 66 00:04:51,557 --> 00:04:55,950 That’s important because otherwise you can wonder, “Was the message actually sent?” 67 00:04:55,950 --> 00:04:58,162 or, “Did anybody get it?” 68 00:04:58,162 --> 00:05:00,983 or “When they receive it, what are they going to do?” 69 00:05:00,983 --> 00:05:05,584 This lays out very clearly what has happened and what will happen next. 70 00:05:05,584 --> 00:05:08,884 And after you’ve crossed time, space, change, actions, and next steps, 71 00:05:08,884 --> 00:05:11,935 the last thing that you’ll want to show is completion. 72 00:05:11,935 --> 00:05:14,719 I also like this dialog box because it’s funny. 73 00:05:14,719 --> 00:05:17,942 And a little bit of humor can be really effective in user interfaces. 74 00:05:17,942 --> 00:05:22,964 Our second heuristic is to use familiar metaphors and language. 75 00:05:22,964 --> 00:05:28,014 And often this can mean trying to provide a match in the interface 76 00:05:28,014 --> 00:05:31,894 with things that people are familiar with from their real-world experience. 77 00:05:31,894 --> 00:05:35,174 This also means speak the user’s language, 78 00:05:35,174 --> 00:05:39,716 and follow conventions that they’re familiar with both in the online world and in the real world. 79 00:05:39,716 --> 00:05:43,356 One important kind of familiarity is metaphors. 80 00:05:43,356 --> 00:05:50,150 In this interface, I want to call your attention to the world in miniature that’s being used in the print dialog box, 81 00:05:50,150 --> 00:05:54,606 and that’s an effective user interface, because it makes very clear 82 00:05:54,606 --> 00:06:00,749 which pieces of the page are going to to be cropped, and which pieces of the page are going to to be printed. 83 00:06:00,749 --> 00:06:04,700 In general, one of the successes of the graphical user interface 84 00:06:04,700 --> 00:06:10,866 is that it leverages a lot of real-world metaphors, like desktop and trash and files and folders. 85 00:06:10,866 --> 00:06:18,186 And if these are activities that users are familiar with, it can help bring them into a new online world. 86 00:06:18,186 --> 00:06:23,633 Now over the last 25 years, as more and more people have gotten accustomed to computing, 87 00:06:23,633 --> 00:06:29,004 some of those real-world metaphors have fallen away and newer ones have developed. 88 00:06:29,004 --> 00:06:36,523 Remember that the reader of your interface is going to be a user and not your colleague, boss, or lawyer. 89 00:06:36,523 --> 00:06:43,098 And consequently, work hard to identify terms and language that will be familiar to them. 90 00:06:43,098 --> 00:06:45,875 Here’s a screenshot from a student loan website. 91 00:06:45,875 --> 00:06:50,162 And it uses two terms that at least I was unfamiliar with — 92 00:06:50,162 --> 00:06:54,449 It talked about me being I already enrolled in “Electronic Correspondence.” 93 00:06:54,449 --> 00:07:00,504 And it said that I was not eligible for “Electronic Bill Presentment.” 94 00:07:00,504 --> 00:07:05,468 What it really means by this, I think, is just “email,” and so it should say that. 95 00:07:05,468 --> 00:07:12,006 And I don’t think of myself as being “enrolled” in an “email correspondence service.” 96 00:07:12,006 --> 00:07:16,423 It would be nicer if it just said “We’re sending you email.” 97 00:07:16,423 --> 00:07:22,498 And there’s some fine print about why I’m not eligible for “Electronic Bill Presentment.” 98 00:07:22,498 --> 00:07:27,796 It would be much clearer if, for starters, it actually identified the reason: 99 00:07:27,796 --> 00:07:33,170 in my particular case this has passed a log-in wall, and so it knows the reason. 100 00:07:33,170 --> 00:07:37,695 And it would be nicer if it was able to use more common terms, 101 00:07:37,695 --> 00:07:46,637 like “We’re unable to send you bills and email because,” maybe, “we don’t have an address on file.” 102 00:07:46,637 --> 00:07:49,630 And it’s important to use familiar categories. 103 00:07:49,630 --> 00:07:55,402 Here’s an example from a Visa website that asks users to select a state. 104 00:07:55,402 --> 00:08:00,874 And, I got a kick out of it because there are more than 50 states here — 105 00:08:00,874 --> 00:08:06,173 in fact, there’s a separate listing for Northern California and Southern California. 106 00:08:06,173 --> 00:08:09,547 And many people in San Francisco might wish 107 00:08:09,547 --> 00:08:12,922 that Northern California and Southern California were different states; 108 00:08:12,922 --> 00:08:18,671 and for many people, which of those they live in or believe they live in is clear. 109 00:08:18,671 --> 00:08:25,165 But for some users, this may be ambiguous, and it would probably be simpler if you just selected California 110 00:08:25,165 --> 00:08:29,696 and then the system decided whether it use its Southern California routing 111 00:08:29,696 --> 00:08:34,228 or Northern California routing, based on the address that you provide later. 112 00:08:34,228 --> 00:08:40,354 And it’s important that the choices that you offer to people are things that they’re likely to be familiar with. 113 00:08:40,354 --> 00:08:46,367 Here is a dialog box that says that “You have a document encoding mismatch. 114 00:08:46,367 --> 00:08:52,553 You’ve got a document which describes itself as being UTF-8, no BOM. 115 00:08:52,553 --> 00:08:57,021 But, the encoding has been set to Western, ISO Latin-1. 116 00:08:57,021 --> 00:09:00,892 Now this is a developer tool, 117 00:09:00,892 --> 00:09:05,716 and so it’s reasonable to expect some fluency with things that are under the hood — 118 00:09:05,716 --> 00:09:12,904 like, users may in general be familiar with the idea that there are different character sets for documents — 119 00:09:12,904 --> 00:09:21,805 but users may be not familiar with what exactly the difference is between UTF-8 no BOM and ISO Latin-1, 120 00:09:21,805 --> 00:09:29,044 or which of them they should select, or how exactly they should go about fixing this problem. 121 00:09:29,044 --> 00:09:36,052 One way that this interface could be improved is beaconing what the most common solution is likely to be. 122 00:09:36,052 --> 00:09:41,480 Our third heuristic is user control and freedom, and this is going to encompass a number of things — 123 00:09:41,480 --> 00:09:48,723 like exits for mistaken choices, the ability to undo and redo, not forcing people down fixed paths. 124 00:09:48,723 --> 00:09:52,272 I think of this heuristic as being about making sure 125 00:09:52,272 --> 00:09:58,068 that the amount of control and freedom is appropriate for the users and appropriate for the tasks. 126 00:09:58,068 --> 00:10:03,129 So for example, if you have an interface that somebody’s only going to use once, 127 00:10:03,129 --> 00:10:06,837 a relatively constrained wizard may actually be a good solution. 128 00:10:06,837 --> 00:10:09,966 However, you may also want a way for users 129 00:10:09,966 --> 00:10:15,464 to break out of that constrained wizard if they know what they’re doing and are more expert, 130 00:10:15,464 --> 00:10:21,017 or have an uncommon or unique activity that they need to accomplish. 131 00:10:21,017 --> 00:10:24,876 Here’s an example from a conference registration site, 132 00:10:24,876 --> 00:10:30,182 and what you can see is that there’s a Continue button, but no Back button. 133 00:10:30,182 --> 00:10:37,040 Here’s an interface that provides more control and freedom in the context of browsing for airline tickets. 134 00:10:37,040 --> 00:10:41,376 What you see here is that there are a number of different ways 135 00:10:41,376 --> 00:10:46,113 in which the user can browse through the space of possible information. 136 00:10:46,113 --> 00:10:49,654 In particular you can see this calendar widget in the top left 137 00:10:49,654 --> 00:10:53,534 which shows you the fares for every day of that month. 138 00:10:53,534 --> 00:10:59,871 And this ability to preview what’s likely to be down a particular path is really valuable 139 00:10:59,871 --> 00:11:06,208 in helping people make decisions and know what options are available to them. 140 00:11:06,208 --> 00:11:09,304 Our fourth heuristic is consistency and standards. 141 00:11:09,304 --> 00:11:12,210 And this includes things like consistent layout. 142 00:11:12,210 --> 00:11:19,926 Here’s a screenshot of a very old set of dialog box options from Microsoft’s Visual Basic. 143 00:11:19,926 --> 00:11:22,933 This is many years old at this point. 144 00:11:22,933 --> 00:11:28,833 It’s pedagogically useful, because there are four different options for where the same set of buttons could be. 145 00:11:28,833 --> 00:11:32,920 And probably, applications will be easiest to learn 146 00:11:32,920 --> 00:11:38,977 if users can come to expect that the same buttons will always be in the same locations. 147 00:11:38,977 --> 00:11:41,764 We talked already about familiar language. 148 00:11:41,764 --> 00:11:44,813 It’s also important to be consistent in your use of language. 149 00:11:44,813 --> 00:11:49,631 And one thing that I’ve seen on the forums is, in teaching this class, 150 00:11:49,631 --> 00:11:54,803 whenever we’ve used terms interchangeably, that’s often been a source of confusion. 151 00:11:54,803 --> 00:11:57,596 And you can see that in this web site. 152 00:11:57,596 --> 00:12:03,749 I arrived at this screen because I wanted to get help with a USB cellular modem that I had, 153 00:12:03,749 --> 00:12:09,901 and I couldn’t figure out which of these categories was most likely to be the right one. 154 00:12:09,901 --> 00:12:16,138 My guess is that these categories were generated based on organizational chart for the business 155 00:12:16,138 --> 00:12:20,683 rather than based on the user’s conceptual model of what they cared about. 156 00:12:20,683 --> 00:12:24,873 So, for example, national access and broadband access 157 00:12:24,873 --> 00:12:30,171 may be different parts of a business and have different management structures; 158 00:12:30,171 --> 00:12:33,874 but from a user’s perspective, they may not know 159 00:12:33,874 --> 00:12:39,115 whether the mobile device they have is in one category or the other. 160 00:12:39,115 --> 00:12:41,676 So how do you solve this naming problem? 161 00:12:41,676 --> 00:12:47,169 Because I think that, once you get familiar with your own products and designs, 162 00:12:47,169 --> 00:12:50,754 it’s easy to refer to them using the terms that you’re familiar with. 163 00:12:50,754 --> 00:12:56,013 And, to some extent, eventually training people up on these terms will be useful for everyone. 164 00:12:56,013 --> 00:13:00,676 However, you’ll often want to elicit what terminology users use naturally 165 00:13:00,676 --> 00:13:03,463 and ensure sure that you use that consistency. 166 00:13:03,463 --> 00:13:06,436 This is actually a case where field work, or focus groups, 167 00:13:06,436 --> 00:13:09,410 or other kinds of direct user engagement can be really valuable, 168 00:13:09,410 --> 00:13:15,357 and you can ask people how they would describe certain things that they might want to get help with. 169 00:13:15,357 --> 00:13:20,286 Another thing that you can do is if you prefer a more web-based strategy, 170 00:13:20,286 --> 00:13:25,960 you can have a category initially that you call Other, and let people type in whatever they want. 171 00:13:25,960 --> 00:13:29,963 And then you can look at the set of responses that come in for Other, 172 00:13:29,963 --> 00:13:36,488 and use that to generate umbrellas terms that may be more user centered in terms of the language they use. 173 00:13:36,488 --> 00:13:41,145 Here is a screenshot of a license repair utility, and it has a warning about the fact 174 00:13:41,145 --> 00:13:47,381 that you’ll need to close all other Adobe applications before proceeding with the license repair utility. 175 00:13:47,381 --> 00:13:54,940 It’s a reasonable constraint, and it says, “Do you wish to…” blank — I have blocked it out. 176 00:13:54,940 --> 00:13:58,637 “Yes” or “No?” 177 00:13:58,641 --> 00:14:03,579 My guess is that a good fraction of you — maybe even most of you — 178 00:14:03,579 --> 00:14:09,594 would guess that [for] “Do you wish to…” the next thing would be “continue.” 179 00:14:09,594 --> 00:14:12,930 And so you might press Yes. 180 00:14:12,930 --> 00:14:16,321 However, what we actually have here is “Do you wish to cancel.” 181 00:14:16,321 --> 00:14:20,144 And so, if you pressed Yes to continue. 182 00:14:20,144 --> 00:14:23,157 It’s going to drop you out of the application and you’ll wonder what happened. 183 00:14:23,157 --> 00:14:26,035 Or if you pressed No, with the intent to cancel, 184 00:14:26,035 --> 00:14:30,010 you’ll actually continue, and you may run into problems. 185 00:14:30,010 --> 00:14:35,697 In this particular case, one way that you can solve this problem about what Yes or No or OK or Cancel mean 186 00:14:35,697 --> 00:14:40,922 is to replace Yes, No, OK and Cancel with more specific options. 187 00:14:40,922 --> 00:14:44,341 So here we see a dialog box where the options are very clear: 188 00:14:44,341 --> 00:14:50,998 One button says “Keep .do” as the extension name; the other one says “Use .pdf”. 189 00:14:50,998 --> 00:14:55,495 And this is much clearer then OK and Cancel, or Yes and No. 190 00:14:55,495 --> 00:15:00,927 Our fifth heuristic is about preventing errors, and there are lots of errors that are easy to make, 191 00:15:00,927 --> 00:15:05,005 and there are lots of ways that your interface can help people prevent them. 192 00:15:05,005 --> 00:15:09,101 The first kind of error to prevent people from making is data loss. 193 00:15:09,101 --> 00:15:13,974 Here we have a dialog box that says “This file already exists,” 194 00:15:13,974 --> 00:15:19,632 and it follows our message of having concrete button names — That’s good. 195 00:15:19,643 --> 00:15:23,225 However, I don’t know what that file looks like. 196 00:15:23,225 --> 00:15:29,669 If it offered me a preview, it’s much less likely that I would mistake what that file is. 197 00:15:29,669 --> 00:15:34,442 In addition to preventing data loss, you can also prevent cluttering duplicates. 198 00:15:34,442 --> 00:15:37,022 Here’s a screenshot that helpfully notifies you that 199 00:15:37,022 --> 00:15:41,234 this may be a duplicate paper that you’re trying to import into a library. 200 00:15:41,234 --> 00:15:44,598 So it says, “Hey, you’ve already got this on your computer.” 201 00:15:44,598 --> 00:15:50,694 And so far as it goes, that’s great; but what I want to know is: 202 00:15:50,694 --> 00:15:55,421 Is what it thinks is a duplicate actually a duplicate? 203 00:15:55,421 --> 00:16:00,927 And so one button that ought to be available here and that isn’t, and that would help me prevent errors, 204 00:16:00,927 --> 00:16:04,872 is by having of way of previewing what it believes the duplicate file to be, 205 00:16:04,872 --> 00:16:08,818 and allows me to compare the two files, side by side. 206 00:16:08,818 --> 00:16:12,579 Here’s a dialog box that says “You have unsaved data. 207 00:16:12,579 --> 00:16:18,300 Click OK to go back and save, or click Cancel to continue.” 208 00:16:18,300 --> 00:16:22,737 There’s a couple of problems here: For starters, we’ve got the “click Cancel to continue,” 209 00:16:22,737 --> 00:16:28,467 which I think may confuse many people, and they’ll consequently lose their unsaved data. 210 00:16:28,467 --> 00:16:34,938 Also, why isn’t Save one of the options on the dialog box? That would make a lot more sense. 211 00:16:34,938 --> 00:16:37,777 There are many ways we could redesign this dialog box. 212 00:16:37,777 --> 00:16:43,082 You could think about automatically saving things, or many other more drastic solutions. 213 00:16:43,082 --> 00:16:51,096 A simple solution that we can make here is to relabel this first button to be — call this… 214 00:16:51,096 --> 00:16:55,898 “Save,” and the other button we might call… 215 00:16:55,898 --> 00:17:03,727 “Don’t Save, Just continue.” 216 00:17:03,727 --> 00:17:08,439 And we will probably want the “Save” button to be the default action. 217 00:17:08,439 --> 00:17:11,844 One of the great advantages of a graphical user interface 218 00:17:11,844 --> 00:17:17,632 is that it can leverage its visual structure to enforce that users provide well-formed input 219 00:17:17,632 --> 00:17:20,911 and to remind them about what parameters are necessary. 220 00:17:20,911 --> 00:17:24,953 So this, for example, is the Find dialog box in Apple’s Keynote, 221 00:17:24,953 --> 00:17:29,733 and you can contrast that with the Find command in the terminal. 222 00:17:29,733 --> 00:17:38,428 In the graphical case, anything you can type into the dialog box will be a reasonable query to search for; 223 00:17:38,428 --> 00:17:42,037 it’s impossible to have incorrect syntax. 224 00:17:42,037 --> 00:17:46,794 However, in the terminal case, you have to remember every time what exactly the syntax is. 225 00:17:46,794 --> 00:17:50,925 Now the terminal has lots of power and is great in lots of ways. 226 00:17:50,925 --> 00:17:57,061 But the ability to make errors in terms of your syntax is one of its drawbacks. 227 00:17:57,061 --> 00:18:01,187 But that doesn’t mean that just because you have a graphical interface, 228 00:18:01,187 --> 00:18:04,514 it automatically will have this property of preventing errors. 229 00:18:04,514 --> 00:18:08,553 This is an example of a scheduling system, and the task that we’re midstream on 230 00:18:08,553 --> 00:18:12,941 is trying to schedule a weekly meeting into a conference room. 231 00:18:12,941 --> 00:18:19,401 And there are some things that you need to fill out that it has explicit dropdowns for, like time and room. 232 00:18:19,401 --> 00:18:25,005 However, the day field is required; it won’t let you schedule for every day.. 233 00:18:25,005 --> 00:18:28,997 But it doesn’t provide much in the way of widgets to do that; 234 00:18:28,997 --> 00:18:32,703 and so if the user is in a hurry, they might forget to enter a day 235 00:18:32,703 --> 00:18:37,240 and it’ll give an error like this that says “No day is specified.” 236 00:18:37,240 --> 00:18:44,409 And what’s shocking is when you get to this point, it doesn’t give you a chance to specify the day. 237 00:18:44,409 --> 00:18:48,840 So, there are several ways that we might simply revise this interface. 238 00:18:48,840 --> 00:18:53,952 One is that we might make the day selection widget clearer and more salient. 239 00:18:53,952 --> 00:18:59,798 And the other thing is, if somehow somebody forgets to specify a day, 240 00:18:59,798 --> 00:19:05,278 the next thing that we show them would be an option to select which of the days that we want, 241 00:19:05,278 --> 00:19:08,283 as opposed to just saying, “No, I’m sorry you did it wrong.” 242 00:19:08,283 --> 00:19:12,841 And it’s not clear at this point how you would go back or start over to modify. 243 00:19:12,841 --> 00:19:17,320 Here’s an example of a search system that provides unnecessary constraints. 244 00:19:17,320 --> 00:19:22,603 I was searching for my colleague Dan Olson’s book, so I typed Olson into the search field, and Enter. 245 00:19:22,603 --> 00:19:27,356 And I was hoping that it would give me a list of books, and I could select from among them. 246 00:19:27,356 --> 00:19:33,247 However, it says, “No, I’m sorry, you must select a catalog to begin your search in.” 247 00:19:33,247 --> 00:19:38,927 There are a number of implementation reasons why it might be preferable to select a catalog. 248 00:19:38,927 --> 00:19:44,325 And in fact, once we get going, I may even want to narrow by catalog to improve the quality of my options. 249 00:19:44,325 --> 00:19:48,856 But it doesn’t seem like you should need to select a catalog to get started — 250 00:19:48,856 --> 00:19:51,757 at least give me some results based on any input. 251 00:19:51,757 --> 00:19:57,940 That’s one thing that I think search systems, when implemented well, do a fantastic job of. 252 00:19:57,940 --> 00:20:02,001 We’ll continue our tour of the heuristics in the next video.