There’s an intrinsic tension in design: On one hand, you’ll want to be able to get feedback from people as soon as you possibly can. On the other, in order to be able to get that feedback you need to make something that works. You’ve learned how to rapidly prototype things with paper prototyping. And today what we’re going to talk about is how you can test rapid prototypes with users. So, let’s imagine for a moment — What if it was possible to create an interactive application without writing much or any code and get feedback on that interactive application quickly? I think that’s a pretty powerful dream, and, like Dorothy learned in « The Wizard of Oz », dreams can be really powerful, and, sometimes, they can even come true. And there’s something else that Dorothy learned that we’re going to use in the lecture: If you’ve seen the movie « The Wizard of Oz », you’ll know that when Dorothy and her compatriots arrived in the Emerald City, they saw a big giant wizard that was really scary and freaked them out. But eventually they learned that that wizard was just a little man behind a curtain, and the ability of that little man behind the curtain to put on a big realistic show that, to the visitors to the Emerald City, seemed completely real and immersive, is exactly what we’re going to accomplish with this video’s prototyping technique. So, the idea behind Wizard-of-Oz Prototyping is that we’re going to simulate interactive behaviour and machine functionality by having a human operator manipulate the levers behind the scenes. If you want to get a sense for just how this realistic this can be, watch our friend from « Seinfeld » call a “Movie Phone application” to try and find out when and where movies are playing. (Hello, and welcome to Movie Phone. If you know the name of the movie you’d like to see, press 1. [beep] C’mon, c’mon… Using the touch-tone keypad, please enter the first three letters of the movie title, now! [beep, beep] You’ve selected « Agent Zero ». If that’s correct, press 1. What?! Ugh…) So George thinks that he’s calling this automated Movie Phone application, but it turns out that, behind the scenes, it’s just Kramer who’s playing a wizard and behaving as if he were the machine. To be honest, he’s not very good — I think that you’d all be able to do better! Wizard of Oz techniques got their start with speech user interfaces. The term “Wizard of Oz” was coined by Jeff Kelly in his PhD dissertation around 1980. And Jeff’s setup at John Hopkins actually bore more of a resemblance to the Wizard of Oz than you might first imagine; so, in addition to some one-way mirrors and things like that, there literally was a curtain separating Jeff, as the wizard, from the participants that were using the speech user interfaces. And these Wizard-of-Oz prototypes were really important for understanding what would be an effective speech user interface, because, at the time, the recognition algorithms weren’t very good, but we knew they were going to get better. And Jeff asked the very important questions of: “If we get the recognition to the point where it was effective, what will the user interaction be? And what kind of strategies might be [the] most effective?” So the Wizard of Oz enabled Jeff to time-travel into a future where speech recognition technology worked better, to try and understand what the user experience issues of that domain would be. In general, a Wizard-of-Oz prototype comprises a couple of pieces: First, you’ve got some kind of user interface that you’re delivering to the user which feels-ish like a user interface — even if it’s sketches or custom-spoken words. And, at the same time, there’s not any or much code that goes behind it — the code and interactivity [that] is being created is a mirage from a human. Sometimes there’s a user interface that the wizard has, which they cobbled together to make life better for them — and in fact back in 2000 colleagues at Berkeley and I built a system called Suede, which helped automate Wizard-of-Oz testing and speech user interfaces. Wizard-of-Oz prototypes make sense when it’s faster and cheaper and easier than building the real thing, and that’s going to be especially true any time you have recognition-based interfaces, or personalization that’s custom to a user. This tradeoff of whether it’s cheaper and faster and easier is also going to depend on your abilities: There will be some things that you know how to do quickly and easily and then you might just implement; and there’s other things that may be more difficult or more time-consuming for you, and those you’ll choose to Wizard-of-Oz. Wizard-of-Oz prototypes, like any other kind of prototype, can be higher or lower fidelity. And there’s some important tradeoffs here — The higher fidelity the prototype, the more it feels like the real thing to users — In fact, sometimes you can build an interface that people don’t even know is being powered by a wizard, as in the famous story of the mechanical Turk, who is inside a chess machine. However, making a high-fidelity user interface is going to take a lot of time, and users may be more reluctant to critique a user interface that’s really high-fidelity, and so, early on, I recommend quick-and-dirty paper prototypes being the most powerful thing to use for Wizard-of-Oz tests. Because users will feel like they can give you any kind of feedback; it’s clear you haven’t put a lot of time into it yet, and it’s fast for you to make, and so you actually haven’t a lot time into it yet. A few years ago, my friend Sep Kamvar created a company called Aardvark, which is a social search engine. It was really good at helping you use your social network to find answers from other people. So the way it works is you ask a question via instant message, via Google chat; and it’s going to be automatically routed to a friend of yours, or a friend of a friend, who has the expertise to answer that question. One of the hard parts about building a service like this is: How do you do the routing? Eventually they figured out an algorithm to do this; but to bootstrap that — both to figure out what algorithm to build, and to get a user experience going before they had built anything — they had a Wizard-of-Oz prototype. So the way that worked was that Aardvark employees would get the question, and they would manually select the person that was going to get routed to. Damon Horowitz, the co-founder of Aardvark, put it this way in a conference: he said that, “If people like it in this super-crappy form, then it’s worth building, because they’ll like it even more when we build the real thing!” So, if you want to be like Kramer or Aardvark, how can you make a wizard-powered prototype? Here’s a sketch of what you’ll need to do in five easy steps: First, figure out what scenarios you’re going to support. It’s a lot of easier to build a Wizard-of-Oz prototype for a limited set of functionality. I like Wizard-of=Oz prototypes because it forces you to figure out what should happen in response to human behaviour. Then, put together some kind of user interface skeleton — the things that the end users are going to see. Third, if you need to, develop the “hooks” for the wizard [to] input if you’re going to have a remote wizard or if they’re going to control some software functionality from behind the scenes. Fourth, and as part of this, you’ll need to figure out exactly what kind of input the wizard is allowed to offer: Are they going to be selecting from a menu of options? offering free response? speaking text? Will you give them a decision tree that controls their behaviour? or you’re going let them be more free-form? If you have a paper prototype, their role is going to pretty manual — adding widgets and moving sliders, and making the interface go. When you’re doing this, it’s important to remember that, ultimately, the functionality that you’re wizarding now is ultimately going to be replaced with a computer, and so at some point down the line, you will have to build some software to make it go. And that’s important, because it can be easy to fake stuff that’s not possible to ever happen. And, last, as with any prototype that you’re going to test with people, practice it first with a friend or a colleague to get the hang of both doing the wizard — it’s a very different kind of interaction than you may be used to — and also, figuring out what scenarios are most effective, what instructions you’ll need to give people. Get out the easy bugs in the user interface before you bring in real users. And now you’re ready to run the user interface: Like I said, you’ll want to practice with a friend at first. Once you’ve got the really obvious kinks out, and when you’ve got your patter down and the tasks ready, then it’s time to recruit some people to come in and try out your prototype. You can even go to places like train stations, or airports, or city street corners, or coffee shops as a way of going to the people who might be using your system. In a Wizard-of-Oz prototype, there’s two roles: you’ve got a facilitator who’s going to talk to the user, and you’ve got a wizard who’s going to manipulate the prototype. If you have the luxury of a team, it’s helpful if there are two different people, in part because your mind is going to be full of all the things that you’ll have to do, and if you separate these roles, each person can concentrate more, do a better job, and you have two sets of eyes looking at what the person’s doing, so you can learn more. But can do this yourself if you need to — these can be one person doing two roles. If you’re trying to convince somebody that this is actually is a real system, then you’ll want your wizard to be hidden or remote somehow, like the Aardvark example. And think about how you’d like to get feedback from users — this is something that we’ll touch on several times more throughout this course. For now, think about whether you’d like to get think-aloud feedback — which is, when the person’s using the prototype, have them speak aloud what it is that’s going through their mind, what decisions they’re making and why, what they’re confused by when they run up against things that they can’t figure out what to do. This think-aloud protocol is great for getting stuff that otherwise you might not know or learn. However, as you can imagine, thinking aloud can change how people interact with the prototype. So, if think-aloud is too distracting, you can ask people at the end of the study what was going through their mind and what they were thinking about — that’s called a retrospective approach. If you like, you can even show them the video of them using it. You can then say things like, “When you got stuck here, what was the issue?” Third, if you have specific things that you’d like to make sure that your interface does well, you can have categories of problems or heuristics that you asked your users to pay attention to. And heuristic evaluation is something that we’re going to talk more about later in this course also. Once you’re all done, make sure to thank people for their time. You may want to give them a gift certificate, or ice-cream, or some other kind of thank-you. And, if you haven’t yet told them that there’s actually a wizard behind the scenes operating the user interface, the end of the experiment is probably a really good time to that — You’ll want to make sure to be honest with people. You can use wizards throughout the entire development of your software, not just at the very beginning. And so, if you have the fully-functional software here, and over time you move towards there, you can use wizards to fill in the gap of whatever is not built at that time. So, the wizard may do all of the interactions at the very beginning, and then, as you get closer and closer to a final project, you can have it just fill in only the parts that aren’t done yet. As you can see, there’s a lot to like about Wizard-of-Oz prototypes: They can be really fast to make, which makes them cheaper, and it also means you get to turn the crank on iteration more. Because they are quick, you can rapidly create multiple alternatives. And you decide that you want the “implementation” to work differently, you just give your wizard different instructions; there’s no code to rewrite. Because it is in a sense interactive, it is more real and you get better feedback than just from paper prototyping, although using paper prototypes as the substrate for a wizard is an excellent strategy early on in the design process. It’s a great way to get feedback about bugs and problems with your user interface design. Every single user interface that I’ve ever built, or that I’ve seen built, or that students of mine have ever built, has had bugs early on. It’s too hard to get right the first time. You’re going to iterate and fail fast, so that you can succeed sooner. And a Wizard of Oz is a great tool to be able to do that. Because you’re getting feedback from users early, it’s a great way to place people at the centre of the development process. It’s also really wonderful for forward-looking applications as we start to think about how sensors and cameras and other futuristic technologies might enable other new kinds of user interfaces. You can imagine these now by building Wizard-of-Oz prototypes. And lastly, strange as it may sound, you actually learn a lot about what your application logic of your interface ought to be, and what makes sense by playing the wizard and embodying that role in the system. But there are some disadvantages too: It can be easy to gloss over errors in technology that will ultimately come back to bite you — like speech recognition systems for example. If, at the end of the day, you’re going to have bugs in your speech system, you’ll want to make sure that your Wizard-of-Oz prototype encodes what happens when the speech reco[gnition]s screws up. Don’t assume it’s going to work perfectly all the time. ’Cause if you’re not careful, you can end up simulating a technology that doesn’t exist and may never. People, for better or for worse, are inconsistent, and, to get them to play the wizard role, can require training, so that’s a ramp-up time. And because you have to have a physical human there to run it, your runtime efficiency is slower, and it can be more exhausting for the people that are playing the wizard role. Wizards are great for some kind[s] of functionality, like Kramer did with the speech user interface. But other stuff, it’s harder to figure out what you can do with a wizard interface, and it may not be quite as effective — it may be klunkier. Or it might be simply be inappropriate — there’re some situations where having a wizard around may not be ok. All in all, I think wizards are an incredibly powerful technique, and a really fun one to stretch your creativity. What kinds of new user interfaces can you imagine by creating a Wizard-of-Oz prototype? I’d like to thank Stephen Dow in creating this lecture — I drew on a lot of the materials that’s he’s used in writing and speaking about Wizard-of-Oz prototypes. And if you’re interested in learning more about wizards, you can see these resources here.