WEBVTT 00:00:01.936 --> 00:00:05.600 In this video, we are going to talk about mental models, 00:00:05.600 --> 00:00:09.017 and the questions that we are going to tackle here are: 00:00:09.017 --> 00:00:15.186 “What makes an interface learnable?“ and “What leads to errors that people make in user interfaces?” 00:00:15.186 --> 00:00:19.997 And to do that, I’d again like to start with an example from the physical world. 00:00:19.997 --> 00:00:23.582 Here we are outside the Computer Science building at Stanford. 00:00:23.582 --> 00:00:28.010 And what I’d like to show you is an example of a user interface error. 00:00:28.010 --> 00:00:34.131 It’s really simple one: Our department and its front door has two doors. 00:00:37.085 --> 00:00:44.965 It both have exactly the same handle on them. However, the door on the right never actually opens. 00:00:44.965 --> 00:00:53.890 So, if I go to use this door right here, 24-hours-a-day 7-days-a-week it never works — it’s locked! 00:00:53.890 --> 00:00:58.633 So why does it have the same handle as the other that does open? 00:00:58.633 --> 00:01:03.573 And you can see right here that a whole lot of people have tried using this handle. 00:01:03.573 --> 00:01:06.353 In fact, faculty who have been around for years 00:01:06.353 --> 00:01:11.425 still often make the mistake of grabbing the wrong door. 00:01:11.425 --> 00:01:14.998 This would be a whole lot better if this door had no handle here. 00:01:14.998 --> 00:01:17.913 You could still exit — you can see this part right here — 00:01:17.913 --> 00:01:23.255 but if want to enter, you would know where to grab and which door to use. 00:01:24.578 --> 00:01:26.454 Let’s say you’ve got a refrigerator, 00:01:26.454 --> 00:01:31.312 and the problem is that he freezer is too cold, but the fridge is all just right. 00:01:31.312 --> 00:01:35.586 This refrigerator has two dials: One of them is labelled A through E, 00:01:35.586 --> 00:01:39.082 the other is labelled with numbers, 3 through 7. 00:01:39.082 --> 00:01:41.009 and there’s an instruction manual 00:01:41.009 --> 00:01:45.620 that lists combinations of letters and numbers for different settings of food. 00:01:45.620 --> 00:01:52.802 So what do we do to have the refrigerator stay the same, but the freezer to be less cold? 00:01:54.833 --> 00:01:59.543 Well, the action is going to depend on the mental model that you have of the system: 00:01:59.543 --> 00:02:03.222 One reasonable model that you could have is that there are two cooling units, 00:02:03.222 --> 00:02:06.082 and there’s one dial that controls each of the units. 00:02:06.082 --> 00:02:08.417 And, in that case, what you would want to do 00:02:08.417 --> 00:02:13.469 is [to] figure out which of those is connected to the freezer and tweak that dial. 00:02:13.469 --> 00:02:18.480 [It] turns out that’s not actually how it works: That there’s only one cooling unit in this refrigerator, 00:02:18.480 --> 00:02:22.323 and then it has a splitter which controls the proportion of cold air 00:02:22.323 --> 00:02:26.308 that goes into either the refrigerator or the freezer. 00:02:26.308 --> 00:02:29.348 And so, if you’d like to be abe to change only one of the two chambers — 00:02:29.348 --> 00:02:32.090 in this case: make our freezer less cold — 00:02:32.090 --> 00:02:34.828 what you have to do is [to] move both of the dials — 00:02:34.828 --> 00:02:38.228 dial back the total amount of coldness going into the refrigerator, 00:02:38.228 --> 00:02:40.647 and then change the fraction 00:02:40.647 --> 00:02:45.763 so that the fridge still gets the cold air that it needs but the freezer is getting less. 00:02:45.763 --> 00:02:50.878 If a lot of users misunderstand the functions of these two dials and get them wrong, 00:02:50.878 --> 00:02:55.251 then I think it’s fair to say that this is a poor user interface. 00:02:56.512 --> 00:02:59.283 There’s a lot of ways that you could fix this. 00:02:59.283 --> 00:03:08.733 Pause the video and think of a few of how you might make this refrigerator interface better. 00:03:08.733 --> 00:03:11.157 Here’s a couple that I came up with: 00:03:11.157 --> 00:03:17.315 One is if the user believes that one dial controls the fridge and the other dial controls the freezer, 00:03:17.315 --> 00:03:20.163 you could have the functionality of the system work that way — 00:03:20.163 --> 00:03:24.111 that you’d have two blowers, one for each. 00:03:24.111 --> 00:03:29.122 You could also simulate two blowers, by having computation in the middle 00:03:29.122 --> 00:03:33.704 and still have the dials connected one for each of the two. 00:03:33.704 --> 00:03:36.619 Alternatively, if you really felt like it was essential 00:03:36.619 --> 00:03:43.142 to have the “total cold plus changing the fraction” model, 00:03:43.142 --> 00:03:48.102 which is probably not as good a user interface but might be needed for cost reasons, 00:03:48.102 --> 00:03:50.828 in that way you could think of a way to have 00:03:50.828 --> 00:03:58.465 a diagram or other kind of cue that would explain better what was going on rather than cryptic text. 00:03:58.465 --> 00:04:04.390 In all of those cases, the goal is for the user interface to beacon to the user 00:04:04.390 --> 00:04:10.171 what the mental model that they should think about the system with is. 00:04:10.171 --> 00:04:15.978 And, of course, as you interact with the system more, your model becomes more sophisticated. 00:04:15.978 --> 00:04:19.294 But there’s a big pitfall and a danger of being a designer: 00:04:19.294 --> 00:04:24.074 You’ve spent so much time with the system that you know it works under the hood 00:04:24.074 --> 00:04:26.987 and you how you imagine other people will think about it. 00:04:26.987 --> 00:04:32.559 But your expertise can be crippling: The mental model that you expect users to have — 00:04:32.559 --> 00:04:36.867 you expect it to be the same as yours — just often doesn’t pan out in practice. 00:04:36.867 --> 00:04:41.313 And that’s one of the reasons why it’s really important to get real people who are not the designers 00:04:41.313 --> 00:04:43.973 in front of interfaces as soon as possible — 00:04:43.973 --> 00:04:49.372 to help you discover those differences between your mental model and theirs. 00:04:49.372 --> 00:04:53.856 And the benefits of aligning the user and designer mental models are obvious: 00:04:53.856 --> 00:04:57.746 Because when you have this mismatch, that can often lead to slow performance, 00:04:57.746 --> 00:05:02.086 or errors, and frustration on the part of the user. 00:05:02.086 --> 00:05:06.091 Where do these mental models come from? Well, that’s a fascinating question, 00:05:06.091 --> 00:05:11.063 and one that deserves a longer answer than I can offer in this short video. 00:05:11.063 --> 00:05:14.352 But I can say a few things to get you started: 00:05:14.352 --> 00:05:17.821 The first is that people reason about new interfaces 00:05:17.821 --> 00:05:21.644 by analogy to old interfaces that they’re more familiar with. 00:05:21.644 --> 00:05:26.209 And when can leverage that — when you can figure out what people are familiar with — 00:05:26.209 --> 00:05:29.967 and use those metaphors intentionally in the construction of new interfaces, 00:05:29.967 --> 00:05:32.199 you’ll often be really successful. 00:05:32.199 --> 00:05:36.826 So, for example, if you can say that a word processor is like a typewriter, 00:05:36.826 --> 00:05:43.650 then people will transfer their believes and skills with the typewriter over to the new word processor. 00:05:43.650 --> 00:05:49.013 The models that we build that guide our action: We have about our behaviour, of other people’s, 00:05:49.013 --> 00:05:54.171 of objects, of software — really anything and anybody that we interact with. 00:05:54.171 --> 00:05:57.511 But that’s not to say that everything is tidy and organized upstairs: 00:05:57.511 --> 00:06:02.542 Our mental models are incomplete; they’re inconsistent; they change over time; 00:06:02.542 --> 00:06:05.605 and they’re often rife with superstition. 00:06:05.605 --> 00:06:07.861 The second thing that I’d like to talk about today 00:06:07.861 --> 00:06:13.173 is two important different kinds of errors that are based on the user’s mental model. 00:06:13.958 --> 00:06:19.159 The second thing that I’d like to do today is to distinguish two important categories of errors 00:06:19.159 --> 00:06:25.899 that are based on differences in what the user’s mental model is about what they believe. 00:06:25.899 --> 00:06:28.491 The first category is a slip. 00:06:28.491 --> 00:06:37.431 With a slip, you have the right model of how a system works, but you just accidentally do the wrong thing. 00:06:37.431 --> 00:06:47.445 So, if I go to reach for one button and press another — just by a motor error — that would be a slip.. 00:06:47.445 --> 00:06:52.819 On the other hand, a mistake is when I do what I intend to do, 00:06:52.819 --> 00:06:57.290 but I have the wrong model of what I ought to do. 00:06:57.290 --> 00:07:02.894 So, if I’m driving, and I think that I ought to take this highway exit to get [to] where I need to go, 00:07:02.894 --> 00:07:09.177 and I take it exactly as I intend to, but I was wrong in my belief, that would be a mistake. 00:07:09.177 --> 00:07:16.109 And, as a designer, you’ll correct these two kinds of errors — or prevent them — in your design differently. 00:07:16.109 --> 00:07:20.982 Slips you’ll most often try to prevent by improving the ergonomics 00:07:20.982 --> 00:07:23.673 or visual design of the user interface — 00:07:23.673 --> 00:07:26.819 spread things out so it’s less likely that you’ll hit the wrong thing; 00:07:26.819 --> 00:07:29.020 make targets bigger. 00:07:29.020 --> 00:07:33.503 With mistakes, on the other hand, what you’ll need to do is [to] provide better feedback, 00:07:33.503 --> 00:07:36.039 or make clear what the options are. 00:07:36.039 --> 00:07:38.440 So, limit the number of mistakes that you [could] make. 00:07:38.440 --> 00:07:43.853 You’ll want to improve the user’s ability to perceive the affordances of your software: 00:07:43.853 --> 00:07:47.819 Make it clear to them what is possible to do. 00:07:47.819 --> 00:07:51.143 Here we have an interface that led to a lot of user errors. 00:07:51.143 --> 00:07:57.321 This is a ballot from Palm Beach County, Florida during the 2000 presidential election in the US. 00:07:57.321 --> 00:07:59.728 There were two major party candidates — 00:07:59.728 --> 00:08:04.729 the Republican candidate George Bush and the Democratic candidate Al Gore. 00:08:04.729 --> 00:08:08.460 Across the nation they were, overall, running neck-in-neck. 00:08:08.460 --> 00:08:14.224 There were also eight other candidates, to each gathered a smaller fraction of the vote. 00:08:14.224 --> 00:08:20.925 A user’s vote was recorded by a hole being punched out along the centreline of the ballot. 00:08:20.925 --> 00:08:23.805 It appears that, due to bad user interface design, 00:08:23.805 --> 00:08:27.340 people who intended to vote for one of the candidates, Al Gore, 00:08:27.340 --> 00:08:36.353 instead, accidentally pressed the hole corresponding to a different candidate, Pat Buchanan. 00:08:36.353 --> 00:08:41.519 While we’ll never know for sure, the data suggested that this is probably the case. 00:08:41.519 --> 00:08:47.067 So, the people who vvoted in Palm Beach County using this ballot style, 00:08:47.067 --> 00:08:52.522 about 0.85% of the votes were for Pat Buchanan. 00:08:52.522 --> 00:08:56.806 However, people who voted absentee, using a different style of ballot, 00:08:56.806 --> 00:09:00.287 had a much lower rate of votes for Pat Buchanan, 00:09:00.287 --> 00:09:07.502 and the reason appears to be that this hole in the middle right here was ambiguous — 00:09:07.502 --> 00:09:13.131 Yes, there’s an arrow pointing to it from the right, but it kind of lines up to the spot on the left. 00:09:13.131 --> 00:09:15.667 So, it appears that for about 0.6% of voters, 00:09:15.667 --> 00:09:21.845 they thought that that second hole corresponded to Al Gore rather than Pat Buchanan. 00:09:21.845 --> 00:09:27.089 And the question for you is: Is this a slip? or is this a mistake? 00:09:27.089 --> 00:09:30.201 These erroneous votes are the result of a mistake, 00:09:30.201 --> 00:09:34.966 because voters performed the manual operation that they intended to perform — 00:09:34.966 --> 00:09:37.479 punching that second hole — 00:09:37.479 --> 00:09:43.474 however, they had the wrong mental model about what punching that second hole meant. 00:09:43.474 --> 00:09:47.208 WIth better user interface design, it could have been clear 00:09:47.208 --> 00:09:54.340 which of these was the hole that corresponded to a Democratic candidate versus the Reform candidate. 00:09:54.340 --> 00:09:59.857 Another important lesson to learn from the butterfly ballot problem is that of consistency: 00:09:59.857 --> 00:10:07.310 Whenever we reuse designs that are already successful, we are less likely to make accidental mistakes. 00:10:07.310 --> 00:10:11.119 By contrast, as happens with a lot of voting systems, 00:10:11.119 --> 00:10:14.020 when every county makes their own voting system 00:10:14.020 --> 00:10:18.027 — or at least there’s broad diversity in the voting systems used — 00:10:18.027 --> 00:10:22.390 it’s much more likely that usability bugs will crop up. 00:10:22.390 --> 00:10:27.881 And so one way that we could fix this would be to have a nationwide standard voting system 00:10:27.881 --> 00:10:31.355 where everybody votes using the same user interface. 00:10:31.355 --> 00:10:38.234 One appealing option for a nationwide voting system would be to use electronic voting. 00:10:38.234 --> 00:10:43.021 If we were to build a better user interface for voting, what would it be? 00:10:43.021 --> 00:10:45.967 Well, given that we’re in a computer science class, 00:10:45.967 --> 00:10:51.360 one natural suggestion to offer up would be electronic voting. 00:10:51.360 --> 00:10:55.168 And electronic voting certainly has some very clear appeals: 00:10:55.171 --> 00:11:00.344 For example, it is much easier to internationalize to many different languages; 00:11:00.344 --> 00:11:03.578 You can have pictures of candidates to make things clear; 00:11:03.578 --> 00:11:07.051 You can have a touch screen so that you have direct manipulation. 00:11:07.051 --> 00:11:11.878 All of these are important and good advantages to electronic voting. 00:11:11.878 --> 00:11:15.771 However, as David Dill in the Verified Voting Foundation point[s] out, 00:11:15.771 --> 00:11:18.554 there’s one major problem with electronic voting: 00:11:18.554 --> 00:11:23.526 How do you know that the machine recorded the vote that you intended? 00:11:23.526 --> 00:11:28.316 And their proposed solution to this user interface problem is really clever: 00:11:28.316 --> 00:11:36.591 What they proposed is that the machine print out a paper receipt of the vote that you cast; 00:11:36.591 --> 00:11:41.925 however, you don’t get to take the receipt with you, because that would run the risk of vote-buying. 00:11:41.925 --> 00:11:47.309 Instead, that receipt falls behind a glass or plastic clear pane, 00:11:47.309 --> 00:11:52.641 and so you can see it being printed out, and you can see it go into a bin, 00:11:52.641 --> 00:11:55.936 and it’s stored there for the purposes of recount. 00:11:55.936 --> 00:12:00.986 That way, you can always manually verify the computer-generated tally. 00:12:00.986 --> 00:12:06.502 The butterfly ballot costs problems because the representation was really confusing — 00:12:06.502 --> 00:12:10.601 What lined up with what was hard to figure out. 00:12:10.601 --> 00:12:13.490 Here’s an example that’s much better: 00:12:13.490 --> 00:12:18.671 This is a seat user interface for an automobile that employs a “world in miniature” strategy. 00:12:18.671 --> 00:12:22.271 It offers controls for manipulating parts of the seat, 00:12:22.271 --> 00:12:26.125 and the interface for doing that is a miniature seat itself. 00:12:26.125 --> 00:12:33.229 So, if you’d like to move the headrest back, you can move the miniature headrest back. 00:12:33.229 --> 00:12:38.927 By having this clear mapping, users are much less likely to make errors. 00:12:38.927 --> 00:12:44.049 So far, we’ve seen how direct manipulation enables users to behave with much more expertise 00:12:44.049 --> 00:12:47.681 by leveraging familiar real-world metaphors. 00:12:47.681 --> 00:12:53.293 This “directness in real-world” metaphor — like “to move a slider you move a slider” — 00:12:53.293 --> 00:12:59.458 helps give users a good idea of how each object works and how to control it. 00:12:59.458 --> 00:13:05.391 And also, the interface’s physical form discloses what functionality it provides. 00:13:05.391 --> 00:13:08.939 So this is all great, right? Well, here’s the challenge: 00:13:08.939 --> 00:13:14.932 The reason that we have technology and software as opposed to the real world that we used to have 00:13:14.932 --> 00:13:17.728 is that we want to be able to do something new! 00:13:17.728 --> 00:13:21.754 So, the reason that have a digital slider as opposed to a physical slider 00:13:21.754 --> 00:13:27.413 is that, at least somewhere in the system, there’s some kind of new functionality being offered. 00:13:27.428 --> 00:13:29.592 And so, as Jonathan Grudin points out, 00:13:29.592 --> 00:13:33.733 if technology is providing an advantage — if there is this new functionality — 00:13:33.733 --> 00:13:38.509 at some point, the correspondance to the real world has to break down. 00:13:39.094 --> 00:13:46.222 So this gap between the new technology and the current practice is necessarily going to be there. 00:13:46.222 --> 00:13:51.521 But your goal, as a designer, is to minimize this distance as much as possible. 00:13:51.844 --> 00:13:54.333 One of my favourite examples of a user interface 00:13:54.333 --> 00:14:00.888 that has this property of offering new functionality but minimizing the distance to current practice 00:14:00.888 --> 00:14:04.101 is the system for DJ’s called “Final Scratch.” 00:14:04.101 --> 00:14:06.675 This is a photograph that [inaudible] Hartman took, 00:14:06.675 --> 00:14:11.860 and what you see here is that the DJ is operating two turntables, 00:14:11.860 --> 00:14:15.222 much as one would do with normal vinyl. 00:14:15.222 --> 00:14:21.066 The difference is that this is special vinyl: It has a code on the record, 00:14:21.066 --> 00:14:28.472 and that code is being used to control a Linux system that you see on the laptop off on the left. 00:14:28.472 --> 00:14:33.071 And so, as opposed to the record playing music that’s piped out to the speakers, 00:14:33.071 --> 00:14:38.553 the record plays a code to the computer, and the computer plays the music to the speakers. 00:14:39.553 --> 00:14:43.499 So why is this a good idea? Well, there’s a couple of reasons: 00:14:43.499 --> 00:14:48.479 One, it means you can play anything, not just something that’s been produced into vinyl. 00:14:48.479 --> 00:14:52.408 Another one is that you only have to carry two record[s], not 200. 00:14:52.408 --> 00:14:55.490 And, more generally, it gives you all of the benefits of digital music 00:14:55.490 --> 00:14:58.852 like, you can produce it in the morning and play it that evening — 00:14:58.852 --> 00:15:02.444 you don’t have to wait several months for production to happen. 00:15:02.444 --> 00:15:04.778 When used well, physical interfaces 00:15:04.778 --> 00:15:10.275 that leverage people’s dexterity, manual abilities, and intuitions about the physical world 00:15:10.275 --> 00:15:12.955 can be incredibly powerful. 00:15:12.955 --> 00:15:16.550 These physical interfaces can also yield an experience that’s more fun to watch, 00:15:16.550 --> 00:15:19.972 which, if you’re a DJ, is really important. 00:15:19.972 --> 00:15:22.001 And, finally, here’s some resources 00:15:22.001 --> 00:15:29.372 if you’d like to learn about mental models, errors, and butterfly ballots.