0:00:01.336,0:00:08.723 The key innovation of the graphic user interface is that input is performed directly on top of output. 0:00:08.723,0:00:14.435 Today, we’re going to explore what makes an interface easy, hard, or “natural,” 0:00:14.435,0:00:21.186 and we’re going to do it by starting with something really simple: a measuring cup. 0:00:21.186,0:00:25.035 It has a user interface: it’s got label readout here. 0:00:25.035,0:00:28.918 There’s a task: Fill up a liquid to a desired amount. 0:00:28.918,0:00:33.586 So, how might you be able to improve this standard measuring cup design here? 0:00:33.586,0:00:35.868 What kind of things can you think of? 0:00:35.868,0:00:39.362 OXO is a company that sells kitchen utencils. 0:00:39.362,0:00:45.871 At the Gel Conference in 2008, OXO’s Alex Lee talked about their measuring cup: 0:00:45.871,0:00:48.859 The first prototype came unsolicited in the mail; 0:00:48.859,0:00:54.610 it inspired them to go out into the field and ask people about problems with their measuring cups 0:00:54.610,0:00:56.814 and suggestions for improvements. 0:00:56.814,0:01:02.917 They got things like: “It’s sometimes slippery” or “The handle gets hot”. 0:01:02.917,0:01:05.860 Nobody complained about the measuring part; 0:01:05.860,0:01:11.355 but, when they watched people measure things, they would do this: 0:01:11.355,0:01:13.784 Grab some liquid; 0:01:13.784,0:01:18.462 Pour it in; 0:01:18.462,0:01:23.334 Hold it up; 0:01:23.334,0:01:26.200 Pour some more in; 0:01:26.200,0:01:29.045 Hold it up; 0:01:29.045,0:01:31.200 Pour a little more; 0:01:31.200,0:01:34.963 There we go! 0:01:37.455,0:01:39.950 This stuttered-step measurement seems kind of inelegant, 0:01:39.950,0:01:48.966 so, to address this, OXO released a design with a clever insight: The numbers are visible from above. 0:01:48.966,0:01:53.681 This provides continuous interactive feedback on your actions. 0:01:57.604,0:02:02.566 Pour once; and when you get to the right level, you can see it directly and stop. 0:02:03.920,0:02:08.159 It’s a great design in lots of ways, but there’s still some room for further improvement. 0:02:08.159,0:02:14.304 For starters, the numbers that are written are sideways from the reader’s perspective. 0:02:14.304,0:02:19.607 Not a huge deal, but still, it’s kind of like when you have to tip your head to look at a table. 0:02:19.607,0:02:24.428 And also — some of you may like this, but I’ve always found this ridge here to be a little inelegant: 0:02:24.428,0:02:30.249 This feels like a medical device more than something that belongs in the kitchen. 0:02:30.249,0:02:37.221 And, when I went to the grocery store today, I actually found this measuring cup by Pyrex: 0:02:37.221,0:02:44.469 It takes the insight from the OXO measuring cup — that you can measure from above — 0:02:44.469,0:02:46.354 and improves upon it in two ways: 0:02:46.354,0:02:52.524 The first is that the numbers right here are readable from the reader’s perspective. 0:02:52.524,0:02:58.031 Hold it in the right hand if you want ounces, or in your left hand if you want millilitres. 0:02:58.031,0:03:03.722 The second is that, for me at least, this design is a whole lot cleaner and nicer-looking. 0:03:06.845,0:03:10.133 So, in this humble story of a better measuring cup, 0:03:10.133,0:03:16.084 Alex Lee at OXO has provided us with four important lessons about human-centred design. 0:03:16.945,0:03:19.779 There’s a common story that the carmaker Henry Ford once said, 0:03:19.779,0:03:26.396 “If I asked people what they wanted, they would have said ‘a faster horse.’” 0:03:26.396,0:03:33.163 [It] turns out that they probably didn’t say that — it’s probably made up — but it makes a good point. 0:03:33.163,0:03:36.464 Our first lesson is that in both transit and in cookware, 0:03:36.464,0:03:41.865 simply asking people what they want can often miss important opportunities. 0:03:41.865,0:03:46.218 The second is that you can find these problems and opportunities — like poor ergonomics — 0:03:46.218,0:03:50.581 by going out into the field and discovering what people actually do. 0:03:50.581,0:03:56.453 And, third, you can get extra power out of this observation by bringing prototypes along with you. 0:03:56.453,0:03:59.993 Fourth, the world is full of people tinkering in their garage, 0:03:59.993,0:04:05.660 and everyone wins when the stars align to bring those things into the world. 0:04:05.660,0:04:10.999 With measuring cups, like user interfaces, you can think of there as being two steps: 0:04:10.999,0:04:18.605 The first is having some action. 0:04:18.605,0:04:22.013 And the second is evaluating the outcome. 0:04:22.013,0:04:27.655 At each of these steps, you, as a designer, has an opportunity for success or for failure. 0:04:27.655,0:04:33.970 In our first step, what you have to cross is the gulf of execution: 0:04:33.970,0:04:37.378 How does the user know what to do? 0:04:38.332,0:04:43.418 And the gulf that you have to help the user cross is the gulf of evaluation: 0:04:43.418,0:04:46.338 How does the user know what happened? 0:04:46.723,0:04:50.848 My sketch here is based on a diagram that my colleague Bill Verplank often uses. 0:04:51.556,0:04:59.227 As a designer, here are six powerful questions that you can ask to ascertain what challenges may arise: 0:04:59.227,0:05:04.401 How usually can someone determine the function of a device, or what actions are possible? 0:05:05.355,0:05:10.541 And then, how can I determine the mapping from their goals to their physical movements — 0:05:10.541,0:05:13.675 what they actually do with the user interface? 0:05:15.459,0:05:20.283 Once they have the plan, how usually can they execute that action? 0:05:21.375,0:05:27.430 And, after they’ve executed that action, how usually can they tell what state the system is in 0:05:27.430,0:05:30.407 or whether it’s in a desired state? 0:05:30.807,0:05:34.762 And, more generally, can they figure out the mapping between the system state 0:05:34.762,0:05:37.415 and what they should interpret that to mean? 0:05:38.215,0:05:42.834 And, as a designer, here’s several things that you can do to actually make these easier: 0:05:42.849,0:05:48.254 The first and simplest is, if there’s functionality that a system can do, 0:05:48.254,0:05:52.273 the best way to communicate that to the user is to put that on the screen — 0:05:52.273,0:05:54.998 make it visible in one way or another. 0:05:54.998,0:05:59.864 And, if it’s in the physical world, give it a handle, or knob, or button. 0:05:59.864,0:06:03.844 These cues to action are called “affordances”. 0:06:03.844,0:06:09.057 Second, provide users with clear, continuous feedback, so they know exactly what’s happening. 0:06:09.057,0:06:15.604 Third, all things equal, be consistent with existing standards, platform conventions, and other idioms. 0:06:15.604,0:06:21.776 Fourth, whenever you can, make it possible for people to back up, through Undo or some other mechanism: 0:06:22.622,0:06:25.644 Very few things should be permanent and irreversible. 0:06:25.644,0:06:28.898 A benefit of having all operations being non-destructive 0:06:28.898,0:06:32.481 is that it also enables users to explore and try out things; 0:06:32.481,0:06:34.973 and especially in creative applications, 0:06:34.973,0:06:39.851 you see that people will try down branches and use Undo to come back. 0:06:40.281,0:06:47.144 Fifth, provide a systematic way for people to discover all of the functionality available in an application. 0:06:47.144,0:06:50.129 If you watched somebody use a new website, for example, 0:06:50.129,0:06:53.959 one thing that you might see them do when they’re trying to figure out how to navigate it, 0:06:53.959,0:07:00.023 is [to] roll over all the menu bars, to see what every option that’s out there is. 0:07:00.499,0:07:04.690 And, finally, reliable software is a usability issue: 0:07:04.690,0:07:09.973 The thing that’s supposed to happen should [happen]; and random stuff that isn’t, shouldn’t. 0:07:09.973,0:07:13.927 I know that reliability is easier said than done, but it’s still really important; 0:07:13.927,0:07:18.666 and a lot of the interfaces that people really like have this property of reliability. 0:07:18.666,0:07:23.583 So, now that we have these new conceptual tools of a gulf of execution and evaluation — 0:07:23.583,0:07:29.562 of knowing what you can do and whether what you’ve wanted is what happened — 0:07:29.562,0:07:33.977 let’s take a look at a video that Bill Moggridge and colleagues at IDEO put together 0:07:33.977,0:07:38.744 about someone trying to buy a soda from a vending machine in Japan 0:07:38.744,0:07:41.615 using their mobile phone. 0:07:41.615,0:07:45.672 While you’re watching this video, think about what’s causing the breakdowns, 0:07:45.672,0:07:53.403 and how you might fix them by using the bullet points that we’ve outlined in this lecture today. 0:10:26.584,0:10:29.115 We started out today looking at physical products, 0:10:29.115,0:10:32.875 and we moved on to explore smart products and mobile phones. 0:10:32.875,0:10:38.827 Now let’s think about what direct manipulation and the gulfs of execution and evalution mean 0:10:38.827,0:10:41.238 for building software. 0:10:41.238,0:10:46.032 What’s better? A command line or a graphical user interface? 0:10:46.032,0:10:49.443 Well, I think the answer is going to have to be “it depends.” 0:10:49.443,0:10:53.570 Nearly every design is good for something and bad for something else. 0:10:53.570,0:10:59.412 But let’s try to figure out what makes them different: think about moving a file between two folders. 0:10:59.412,0:11:04.742 On a graphical user interface, you simply pick it up in one location, and drop it in another: 0:11:04.742,0:11:09.770 You have continuous feedback about what’s happening. 0:11:09.770,0:11:13.839 All of the objects that are of interest to you are available onscreen, 0:11:13.839,0:11:18.521 and you can simply point at what you want — “input on output”. 0:11:18.521,0:11:24.300 With a command line, you have to know, a priori, what the name of the command that is that you’d like to use. 0:11:24.300,0:11:29.109 You also have to remember the syntax for using that move command 0:11:29.109,0:11:32.377 there’s minimal feedback about whether the operators that you’re dealing with — 0:11:32.377,0:11:36.465 like files or folders — are actually available, 0:11:36.465,0:11:41.220 and there’s not much in confirmation that you’ve moved it ultimately to the right place — 0:11:41.220,0:11:44.867 it can be easy to make errors. 0:11:44.867,0:11:49.100 What we see with the graphical interface is the power of direct manipulation — 0:11:49.100,0:11:54.155 immediate feedback on all actions, continuous representations of the objects, 0:11:54.155,0:11:58.208 and they leverage metaphors that we have from the physical world. 0:11:58.208,0:12:01.362 These metaphors are especially important when you’re learning a new interface, 0:12:01.362,0:12:04.211 and so when the graphical interface was first released, 0:12:04.211,0:12:09.691 being able to rely on what people knew about desks, folders, and files was really helpful; 0:12:09.691,0:12:14.719 those become less valuable once you’ve become accustomed to the computer world. 0:12:14.719,0:12:17.897 So, give some thought to which of these principles hold 0:12:17.897,0:12:21.776 for both the command-line interface and the graphical interface. 0:12:22.946,0:12:23.891 From my perspective, 0:12:23.891,0:12:30.860 the graphical interface does a much better job in terms of visibility, feedback, and consistency. 0:12:34.291,0:12:37.122 In either interface style, Undo is possible, 0:12:37.122,0:12:42.301 although the GUI generally does a better job of exposing when Undo is available 0:12:42.301,0:12:46.281 and what undoing will actually do. 0:12:48.496,0:12:53.204 One place that a graphical interface really shines is in terms of discoverability — 0:12:53.204,0:12:58.872 you can leaf through every single menu in a system, and see all of the operations that are there; 0:12:58.872,0:13:00.541 with a command-line interface, 0:13:00.541,0:13:07.284 there’s really no way to know what’s the full set of operations that you could possible type into a terminal. 0:13:07.284,0:13:11.759 There’s no mater list. 0:13:11.759,0:13:17.384 In terms of reliability, either interface style can be made to be reliable. 0:13:19.676,0:13:22.503 “But how can this be?” some of you may be saying, 0:13:22.503,0:13:27.040 “The command-line interface can be so much better sometimes!” 0:13:27.040,0:13:29.968 And it is! 0:13:29.968,0:13:31.196 When is that? 0:13:31.196,0:13:33.484 The command-line interface works better 0:13:33.484,0:13:39.741 when the indirection that it offers is a benefit rather than a drawback. 0:13:39.741,0:13:43.284 And in fact that indirection that it offers is a kind of abstraction, 0:13:43.284,0:13:45.699 and that’s what gives programming its power, 0:13:45.699,0:13:51.183 and so the command-line interface, like programming — because in some way it kind of is programming — 0:13:51.183,0:13:59.553 gets its power when you can express stuff more abstractly and thereby do work more efficiently. 0:13:59.553,0:14:06.554 So, for example, moving all of the files that match a certain set of criteria from one place to another, 0:14:06.554,0:14:11.307 that can sometimes be more efficiently accomplished with a command line. 0:14:11.307,0:14:16.354 And even that wonderful discoverability of the graphical user interface has a dark side: 0:14:16.861,0:14:19.769 This is a picture from my colleague Takeo Igarashi. 0:14:19.769,0:14:25.877 Takeo made this picture by turning on all of the menu bars in a certain version of Microsoft [PowerPoint]. 0:14:25.877,0:14:32.134 And you can see that, on his laptop screen, all of those menu bars crowded things out so much 0:14:32.134,0:14:35.942 that there was almost no screen left over for the slides. 0:14:35.942,0:14:41.320 So, is this interface discoverable? Absolutely! All of the functionality is right there. 0:14:41.320,0:14:45.862 But you pay a cost in terms of screen real estate. 0:14:45.862,0:14:50.092 In this introductory course, we won’t have a chance to talk much about gestural interfaces. 0:14:50.092,0:14:54.065 But, given their recent popularity, and tablet interfaces, game controllers, 0:14:54.065,0:15:00.422 and movies like « the Minority Report », I want to conclude today’s lecture with an eye to the future: 0:15:00.422,0:15:04.457 Gestural interfaces offer a wonderful solution to menu creep, 0:15:04.457,0:15:08.442 in that they don’t take up any permanent screen real estate. 0:15:08.442,0:15:13.638 The downside, of course, is that they are non–self-disclosing — 0:15:13.638,0:15:17.869 you don’t know what functionality might be available. 0:15:17.869,0:15:24.903 And, at their best, gestural interfaces can be even more direct than their graphical user interface counterpart. 0:15:24.903,0:15:31.164 In recent years, I’ve watched in amazement at people of all ages and from all backgrounds 0:15:31.164,0:15:35.681 have figured out how to use tablet computers really effectively. 0:15:35.681,0:15:39.092 And the directness, I think, is one big reason for that. 0:15:39.092,0:15:42.153 Learning to use a mouse is actually kind of a big deal: 0:15:42.153,0:15:44.440 Once you’ve got the hang of it you forget that, 0:15:44.440,0:15:46.900 but there is this indirectness that you’ll have to learn 0:15:46.900,0:15:51.004 that what you’re doing over here matters over here. 0:15:51.004,0:15:56.252 With a tablet, the thing that you touch is the thing that you’re interacting with. 0:15:56.252,0:16:02.629 And the best gestures in these interfaces, like pinching to zoom, just feels so natural — 0:16:02.629,0:16:09.421 the metaphor is very clear, the feedback is immediate, the outcome is predictable. 0:16:09.421,0:16:14.153 In other cases, when the mapping is more arbitrary or harder to guess, 0:16:14.153,0:16:16.674 I think these interfaces are less effective. 0:16:16.674,0:16:23.901 For example, if I swipe with four fingers, that will bring up a menu bar on an iPad. 0:16:23.901,0:16:27.549 How on earth would I ever figure that out? 0:16:27.549,0:16:32.542 So, in gestural interfaces, like in all others, things work best when the feedback is clear, 0:16:32.542,0:16:37.745 and the interface provides cues through metaphors or visual signals 0:16:37.745,0:16:41.784 that help you know what you can do within the user interface. 0:16:41.784,0:16:45.897 To learn more about direct manipulation interfaces and the psychology of design, 0:16:45.897,0:16:50.292 I strongly recommend Don Norman’s book « The Design of Everyday Things ». 0:16:50.292,0:16:53.171 We’ll see you next time.