Public notes for CS6750 - HCI Spring 2022 at Georgia Tech

Public webpage for sharing information about Dr. Joyner's CS6750 - Human Computer Interaction course in Spring 2022.

View the Project on GitHub idkaaa/cs-6750-hci-sp22-public

3.5 Prototyping

3.5.1 - Introduction to Prototyping

3.5.2 - Basics of Prototyping

3.5.3 - Tradeoffs in Prototyping

3.5.4 - 5 Tips: Prototyping

Here are five quick tips for effective prototyping.

  1. Number 1, keep prototypes easy to change.
    • Your goal here is to enable rapid revision and improvement.
    • It’s easy to make quick changes to something on paper, but it’s harder to make it a code or physical prototypes.
  2. Number 2, make it clear that it’s a prototype.
    • If you make a prototype look too good, users may focus on superficial elements like colors or font. By letting your prototype look like a prototype, you can help them focus on what you’re ready to test.
  3. Number 3, be creative.
    • Your goal is to get feedback. Do whatever it takes to get feedback. Don’t let the type of prototype you’re designing constrain the kind of feedback you can get. If you find your current prototypes don’t give you the right kind of feedback, find ones that do.
  4. Number 4, evaluate risks.
    • One of the biggest goals of prototyping is to minimize the time spent pursuing bad designs by getting feedback on them early. How much would you lose if you found that users hate the parts of your design that they haven’t seen yet? Whenever that answer gets to be longer than a couple hours, try to get feedback to make sure you’re not wasting time.
  5. Number 5, prototype for feedback.
    • The goal of a prototype is to get feedback. You could spend a lot of time focusing on details like font selection and color choice, I know I do, but that’s probably not the feedback you need when you’re exploring your big alternatives. Prototype for the kind of feedback you want to get.

3.5.5 - Verbal Prototypes

3.5.6 - Paper Prototyping

3.5.7 - Wizard of Oz

3.5.8 - Wireframing

3.5.9 - Physical Prototypes

3.5.10 - Exercise: Prototyping Pros and Cons Question

3.5.10 - Exercise: Prototyping Pros and Cons Solution

3.5.11 - Design Life Cycle Revisited

At this point, there’s a risk of a major misconception that we should cut off right now. We started with need finding, then develop some design alternatives, and now we’re prototyping. We’ve talked about how prototyping follows a timeline to low fidelity to high fidelity prototypes, from early to late prototyping. We might think that we move on to evaluation when we’re done prototyping. That’s not the way the design life cycle works though. We go through this cycle several times for a single design and a single prototype corresponds to a single iteration through the cycle. So we did some initial needfinding, we brainstormed some alternatives, and we prototyped those alternatives on paper. We don’t jump straight from doing them on paper to doing them via wire framing or doing a functional prototype. We take those prototypes and we use them for evaluation. We evaluate those paper prototypes with real people. The results of that evaluation tell us if we need to go back and understand the task even better. Those results help us reflect on our alternatives as a whole, maybe come up with some new ones. Then, equipped with the results of that evaluation, that additional needfinding, and that additional brainstorming, we return to the prototyping phase. If our prototype seemed to be pretty successful and pretty sound, then maybe it’s time to raise the fidelity of it. Maybe we take it from a paper prototype and actually do some wire frames, or do a car prototype around the actual interaction. If it wasn’t very successful though, when we reach back here, we’re going to do a different paper prototype, or a different low fidelity prototype, and then go to evaluation again. Each time we develop a new prototype we go through the same cycle again. Now that might sound extremely slow and deliberate but we also go through this on a very different time scales too. So for example, after we’ve gone through needfinding and designing alternative brainstorming, we can develop a paper prototype. We give it to a user and get their evaluation. They say that they don’t like it. We ask them why, we ask them to describe what about their task isn’t supported by that interface. That’s in some ways another needfinding stage. Then we brainstorm real quick how we could resolve that. Maybe we just do that while we’re sitting with that user and think it didn’t support this element of what they described, but I could add that pretty quickly just by making this button or this function more visible. Now we very quickly have a new prototyping just by sketching out that addition to that paper prototype and now we can do it again. This cycle could take one minute. We could take one prototype, put it in front of a user, get their evaluation, figure out what they liked and didn’t like, brainstorm a way to fix that, and then immediately revise it and try it again. We can go through this very, very quickly. We could also go through this very slowly, we could have prototypes that take months to develop. And generally that’s why we only want to do that after we’ve gone through the cycle a few times. Because if we’re going to take months to develop a prototype, we want to make sure we’re probably going to get some pretty good evaluations on it. And we can make sure of that by prototyping the elements in lower fidelity first.

3.5.12 - Multi-Level Prototyping

There’s one other misconception that I’ve seen in some designers I’ve worked with that I feel is also worth explicitly acknowledging. All your prototypes don’t have to be at the same level, at the same time. Take Facebook for example. Facebook is a complete app already implemented. Imagine that Facebook wanted to redesign their status update box, which they’ve done pretty recently and have probably done since I recorded this. Just because the interface is complete in other ways doesn’t mean that all future prototyping efforts need to be similarly high fidelity. They don’t need to implement an entire new status composition screen just to prototype it. They can prototype it in lower fidelity with sketches, or wire frames, put that in front of users, get their feedback, before ever actually implementing it into a functional prototype or a working part of the website. This applies particularly strongly to the design of apps or programs with multiple functions. So take something like the LinkedIn app. It has a number of different functions like editing your own profile, or connecting with others, or browsing your news feed. Each of these individual screens has its own tasks and interactions. And moving amongst them, is itself a task or a type of interaction. Trying to design all the screens and the transitions among them all at the same time is likely far too much. So we could take the bottom-up approach, where we would design the individual screens first, and then design the app experience as a whole. Or we might take the top-down approach and design the overall experience of moving between these different screens, and then design the contents of the individual screens. The point of this is that at any time, protoyping can and should exist at multiple levels of fidelity.

3.5.13 - Exploring HCI: Prototyping

If you’re working in an application area that relies on traditional screens and input methods, your prototyping process might be pretty straightforward. It’ll go from paper prototypes to wireframes exploring iteratively more complete versions of the final interface. For a lot of emerging domains though, you’ll have to get somewhat creative with your prototyping. For things like gestural or voice interaction, you can likely use Wizard of Oz prototyping by having a human interpret the actions or commands that will ultimately be interpreted by the computer. For augmented reality or wearable devices though, you might have to get even more creative. So take a second and brainstorm how you might go about prototyping in your chosen field. Remember, your goal is to get feedback on your ideas from the user early. What can you create that will get you that feedback?

3.5.14 - Conclusion to Prototyping

In this lesson, we’ve talked about several methods for prototyping. Our goal is to employ a lot of methods to get feedback rapidly,and iterate quickly on our designs. Through that process, we can work our way toward creating our ultimate interface. The main goal of this prototyping process has been to create designs we can evaluate with real users. We’re obviously not going to deploy a hand-drawn interface to real customers. Its value is in its ability to get us feedback. That’s what the entire design life cycle has been leading towards: evaluation, evaluating our ideas, evaluating our prototypes, evaluating our designs. That user evaluation is the key to user-centered design. Focusing on user evaluation ensures that our focus is always on the user’s needs and experiences. So, now that we’ve researched users needs, brainstorm some design alternatives, and create some shareable prototypes, let’s move on to actual evaluation.