28.11.2014 Views

Designing User Interfaces

Designing User Interfaces

Designing User Interfaces

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Designing</strong> <strong>User</strong> <strong>Interfaces</strong><br />

Chapter 6<br />

Squeak: Object-Oriented<br />

Design with Multimedia<br />

Applications


Two Challenges of UI<br />

❙ How do you create user interface software<br />

that you can maintain well, that is truly objectoriented,<br />

and that is easy to change pieces<br />

without impacting everything?<br />

❙ How do you create user interfaces that<br />

people can actually use?<br />

❚ The latter is much harder and is what we<br />

focus on here<br />

❙ Briefly! No substitute for a real HCI class<br />

9/19/00 Copyright 2000, Mark Guzdial 2


Story<br />

❚ Know thy users for they are not you<br />

❙ Choosing between UI alternatives<br />

❚ Understanding the <strong>User</strong> and the Task<br />

❙ Matching <strong>User</strong>s to Interface Techniques:<br />

Avoiding <strong>User</strong> Error<br />

❙ Example: Critiquing our Clock Interface<br />

❚ A UI Design Process<br />

❚ Evaluating <strong>User</strong> <strong>Interfaces</strong><br />

❙ Before user involvement<br />

❙ Evaluating with users and with groups<br />

9/19/00 Copyright 2000, Mark Guzdial 3


Know Thy <strong>User</strong>s for They are Not<br />

You<br />

❚ Most important thing to learn: You are almost never the<br />

user!<br />

❙<br />

❙<br />

The user may not be anything like you<br />

Making an interface that works for you may not work at all for<br />

your users<br />

❘ Most users are not programmers<br />

❚ Most users have expertise, but not in computers<br />

❙<br />

❙<br />

You probably don’t have their expertise!<br />

They may think about things very different than you!<br />

❚ Particular important when deciding between options<br />

9/19/00 Copyright 2000, Mark Guzdial 4


How do you decide between<br />

interface alternatives?<br />

ClockMorph<br />

Ch5 ClockUI<br />

9/19/00 Copyright 2000, Mark Guzdial 5


What are our options?<br />

❚ Ask the users?<br />

❙ They may have no idea—the task may never have<br />

been computerized before.<br />

❚ Pick the one you like?<br />

❙ See two slides back...<br />

❚ Use a UI Design Process!<br />

❙ Understand the user<br />

❙ Understand the task<br />

❙ Evaluate your UI options<br />

9/19/00 Copyright 2000, Mark Guzdial 6


Understanding the <strong>User</strong><br />

❚ What are their skills and limitations?<br />

❚ What do they know how to do?<br />

❚ What don’t they know how to do?<br />

❚ Some important questions:<br />

❙ How old is the typical user?<br />

❙ What language is familiar to users about the<br />

task?<br />

❙ What does the user want to do?<br />

9/19/00 Copyright 2000, Mark Guzdial 7


Example Important Questions<br />

❚ How old is the typical user?<br />

❙<br />

❙<br />

Video games don’t rely on manuals for a reason<br />

Aging of America vs. font size<br />

❚ What language is familiar to users about the task?<br />

❙<br />

❙<br />

Some software attempts to teach physics using the word<br />

“gravity” before defining “gravity”<br />

Order of operations, e.g., data preparation<br />

❚ What does the user want to do?<br />

❙<br />

❙<br />

❙<br />

What does the user already know?<br />

“Stuffy noses” is an important symptom to a parent<br />

“psuedophedrine hydrochloride” may be how a doctor wants to<br />

look up a remedy<br />

9/19/00 Copyright 2000, Mark Guzdial 8


Understanding the Task<br />

❚ Experts often can’t tell you what they do or how they do<br />

it<br />

❙<br />

It’s part of expertise: Knowledge gets “compiled”<br />

❚ Investigate the context<br />

❙<br />

❙<br />

❙<br />

❙<br />

When do you perform your task?<br />

What do you need to perform your job?<br />

Examples<br />

❘<br />

❘<br />

Airport traffic controllers can use windows easier than software<br />

Lawyers use boilerplate with sophisticated indexing<br />

How often do you perform your task?<br />

❘ Common, rare, only upon emergency<br />

9/19/00 Copyright 2000, Mark Guzdial 9


<strong>User</strong> Interface Techniques<br />

❚ Lots of options in user interfaces<br />

❙ Buttons for selecting and toggling<br />

❙ Checkboxes and radio buttons<br />

❙ Text areas<br />

❙ Direct manipulation: Drag-and-drop, drag-and-resize<br />

❙ Menu selections<br />

❙ Dialog boxes (modal) with buttons and fields<br />

❙ Natural language<br />

❙ Command languages like UNIX shell<br />

9/19/00 Copyright 2000, Mark Guzdial 10


Interactions between Techniques<br />

and <strong>User</strong>/Task Characteristics<br />

❚<br />

❚<br />

Not all techniques work well with all users<br />

❙<br />

❙<br />

Command languages are lousy for novices and infrequent users<br />

❘ Icons and menus work better for them<br />

Expert users love command languages, and are very efficient with them<br />

Not all techniques work well for all tasks—but there is some<br />

dependency on users, too.<br />

❙<br />

❙<br />

❙<br />

Direct manipulation is how most users want to draw simple figures—not<br />

command languages<br />

But some users use command languages for complex figures (e.g.,<br />

MetaPost, POV-Ray)<br />

<strong>User</strong>s who generate fairly simple graphics (e.g., graphs) frequently<br />

want command languages to automate task<br />

9/19/00 Copyright 2000, Mark Guzdial 11


Interactions are not<br />

always obvious!<br />

❚ In laboratory tests, shortcut keys are always<br />

slower than mousing!<br />

❙<br />

❙<br />

Fitts Law governs how fast you can click on an object<br />

❘ When mouse stops at the top of the screen, menus at the<br />

top became easier to hit (larger, in some sense)<br />

Time delay between mousing and keyboard is swamped by time<br />

required to remember the keystroke<br />

❚ However, those are laboratory tests<br />

❙<br />

Real experts know the keystrokes without remembering, but<br />

hard to find a control group for testing.<br />

9/19/00 Copyright 2000, Mark Guzdial 12


Choosing Between UI<br />

Alternatives<br />

❚ Computers are good at remembering, people are not<br />

❙<br />

❙<br />

Make knowledge visible!<br />

Put the knowledge needed by the user in the world<br />

❙ Avoid modes<br />

❘<br />

If you have to use modes, make them visible (unlike vi!)<br />

❚ Do what people expect—follow applicable guidelines<br />

and physical counterparts<br />

❙<br />

Put the OK and Cancel buttons where expected<br />

❚ Goal: Avoid <strong>User</strong> Error—but Design Expecting<br />

Errors!<br />

9/19/00 Copyright 2000, Mark Guzdial 13


Example: Consider our<br />

Clock Interface<br />

❚ We are reasonable models of users here:<br />

We all use clocks<br />

❚ Tasks with clocks (most frequent to least<br />

frequent)<br />

❙ Look at the time<br />

❙ Look at the date (optional)<br />

❙ For an alarm clock, set the alarm time<br />

❙ Set the time (after a power outage, or<br />

before/after Daylight Savings Time)<br />

9/19/00 Copyright 2000, Mark Guzdial 14


Evaluating the Clock<br />

Interface for Tasks<br />

❚ We can see the<br />

time (1/2 of display)<br />

❚ Date and alarm<br />

irrelevant here<br />

❚ But 1/2 of display<br />

(busiest part, the<br />

part that attracts<br />

our eye) is for the<br />

least common task<br />

9/19/00 Copyright 2000, Mark Guzdial 15


Evaluating the Clock Interface based<br />

on Rules of Thumb<br />

❚ “Make knowledge visible”<br />

❙ How do you know when you clicked the button?<br />

❙ How do you know if you successfully changed the<br />

time?<br />

❚ “Avoid user error”<br />

❙ How easy is it to accidentally change the time?<br />

❙ And that’s half the display?<br />

❚ Suggestion: The Clock Interface is optimized for<br />

error!<br />

9/19/00 Copyright 2000, Mark Guzdial 16


Brainstorm: Your Favorite<br />

Clock Designs<br />

❚ What are your favorite interface designs<br />

for supporting the clock tasks?<br />

❙ Tasks: Reading the time, setting the time<br />

❙ Consider the different tasks of different<br />

contexts<br />

❘ Your watch<br />

❘ Your clock’s computer<br />

❘ Kitchen watch and timer<br />

9/19/00 Copyright 2000, Mark Guzdial 17


UI Design Process:<br />

Waterfall Method<br />

❚ Requirements specification<br />

❙ Know the users and their tasks<br />

❚ Architectural design<br />

❙ How should the UI provide the necessary functions<br />

❚ Detailed design<br />

❙ Refine to details that a programmer can code<br />

❚ Coding and unit testing<br />

❙ Build and test components as develop<br />

9/19/00 Copyright 2000, Mark Guzdial 18


UI Design Process:<br />

Waterfall Method (Part 2)<br />

❚ Integration and testing<br />

❙ Integrate the low-level components and test<br />

them<br />

❚ Operation and maintenance<br />

❙ Actually use the system and maintain it over<br />

time<br />

9/19/00 Copyright 2000, Mark Guzdial 19


Problem with Waterfall<br />

Method<br />

❚ <strong>User</strong>s don’t know what they want<br />

❙ If they’ve never had a widget like this, they<br />

don’t know how they’ll use it<br />

❚ Worse, technology is a variable!<br />

❙ Adding technology changes tasks and even<br />

users<br />

❙ Original user and task analysis may no longer<br />

be valid once the technology is in place<br />

9/19/00 Copyright 2000, Mark Guzdial 20


Example: How Technology<br />

Gets Incorporated<br />

❚ A Small Matter of Programming by Bonnie Nardi<br />

(ethnographer, anthropologist)<br />

❙ She studied how spreadsheets are used in real offices<br />

❙ There are hierarchies of spreadsheet users<br />

❘<br />

❘<br />

❘<br />

❘<br />

Some just fill in others’ spreadsheets<br />

Others define spreadsheets for others<br />

Still others define the macros that spreadsheet-definers use<br />

Finally, there are a few people who build low-level tools for the<br />

macro-builders<br />

9/19/00 Copyright 2000, Mark Guzdial 21


Example: How Technology<br />

Gets Incorporated (Part 2)<br />

❚ The Spreadsheet roles naturally develop and<br />

are stable (they don’t go away after a few<br />

weeks/months)<br />

❚ Smart companies build on these observations<br />

❙ Reward people who play the spreadsheet and macro<br />

building roles<br />

❙ If you want technology adopted, plant a farmer in the<br />

department to grow the roles<br />

❚ How would you design the interface to support<br />

the way that the users really use the software?<br />

9/19/00 Copyright 2000, Mark Guzdial 22


Alternative UI Design Process:<br />

Iterative Design and Prototype<br />

❚ Requirements gathering<br />

❙ Again, study the users and their tasks<br />

❙ Develop measurable usability goals<br />

❘ <strong>User</strong>s will be able to do X in time Y<br />

❚ Build a prototype<br />

❙ Plan on throwing one away!<br />

❚ Evaluate the prototype<br />

❙ Test with real users against goals<br />

❚ Iterate until goals are met<br />

9/19/00 Copyright 2000, Mark Guzdial 23


Evaluation of <strong>User</strong><br />

<strong>Interfaces</strong><br />

❚ Now, you’ve got a user interface design<br />

❙ You considered the users and the tasks<br />

❙ You carefully matched UI techniques to users and<br />

tasks<br />

❙ You think that this’ll work<br />

❚ How do you know if you got it right?<br />

❙ Do you go to the trouble of coding it first?<br />

❙ Is there anything you can do before hand?<br />

❙ And once it is coded, how do you test it?<br />

9/19/00 Copyright 2000, Mark Guzdial 24


Evaluating Before <strong>User</strong><br />

Involvement<br />

❚ Heuristic evaluation<br />

❙<br />

❙<br />

Carefully analyzing a user interface in terms of a set of standard<br />

questions or issues<br />

E.g., “Is the necessary knowledge always visible?”<br />

❚ Guidelines review<br />

❙<br />

❙<br />

Using a standard for UI guidelines (e.g., Apple, IBM, etc.)<br />

determine if meets guidelines<br />

E.g., “Is the Cancel button always in the right place?”<br />

❚ Cognitive walkthrough<br />

❙ Will the system make sense to the user?<br />

9/19/00 Copyright 2000, Mark Guzdial 25


Sample Useful Heuristics<br />

❚ Can the user figure out their current state?<br />

❙ Is everything that the user needs to know<br />

about visible on the screen?<br />

❚ Is the language on the screen in the<br />

language of the user (not the<br />

programmer)?<br />

❚ Is help available?<br />

❚ Are error messages useful?<br />

9/19/00 Copyright 2000, Mark Guzdial 26


Cognitive Walkthrough<br />

❚ Start out with a description of the system, the user, the<br />

users’ goals, and a process description for a useful task<br />

❚ Walk the process description asking at each<br />

step:<br />

❙<br />

❙<br />

❙<br />

Does this make sense for this user? Will they understand it?<br />

Will the user be able to figure out what to do next?<br />

Will the users be able to understand the feedback that they get?<br />

❘ If something goes wrong, can they tell? Can they figure out<br />

how to fix it?<br />

9/19/00 Copyright 2000, Mark Guzdial 27


Example: Netscape 2<br />

❚ Whether this interface works is dependent<br />

on user and task<br />

9/19/00 Copyright 2000, Mark Guzdial 28


Considering <strong>User</strong>s and<br />

Tasks<br />

❚ Intermediate user: “I want to find something on<br />

alligators”<br />

❙<br />

Net Search button is evident<br />

❚ Advanced user: “I want to get to<br />

http://www.slashdot.org”<br />

❙<br />

❙<br />

Address field where you can type in an address<br />

New Location menu item in File menu<br />

❚ Beginner (8 year old in Kitchen): “I want today’s<br />

weather”<br />

❙ What would he click on?<br />

9/19/00 Copyright 2000, Mark Guzdial 29


“Will users understand<br />

feedback?”<br />

❚ What happens if I type “weather” in the<br />

address field?<br />

9/19/00 Copyright 2000, Mark Guzdial 30


The Point is not to Pick on<br />

Netscape<br />

❚ Purposefully older version of Netscape<br />

❙ Hopefully, newer versions are better<br />

❚ Heuristic evaluation can point out problems, just<br />

by thinking it through and trying it<br />

❚ It’s very hard to come up with a single interface<br />

that works for a variety of users and tasks!<br />

❙ Consider Microsoft Word!<br />

9/19/00 Copyright 2000, Mark Guzdial 31


Evaluating with <strong>User</strong>s<br />

❚ In the end, you can never really be sure that<br />

your interface works until you face the users<br />

❚ It’s always better (less expensive!) to identify<br />

and correct errors earlier rather than later, so<br />

pre-user methods are useful<br />

❚ But real users have ways of interpreting things,<br />

doing things, and breakingthings that you might<br />

never expect.<br />

❘<br />

❘<br />

“Know they users for they are not you!”<br />

Examples: Stories from technical support<br />

9/19/00 Copyright 2000, Mark Guzdial 32


Deciding How to Evaluate<br />

with <strong>User</strong>s<br />

❚ What do you want to learn?<br />

❙ Goal: Can someone use my software?<br />

❘ Can observe a small number of users<br />

❙ Goal: Is my software better than X<br />

(X=competitor’s software, doing it by hand)?<br />

❘<br />

❘<br />

❘<br />

You need enough users to conduct a real experiment<br />

You need an experiment and control group<br />

Have them perform some standard set of tasks and measure<br />

time, accuracy, number of errors, etc.<br />

9/19/00 Copyright 2000, Mark Guzdial 33


Techniques for <strong>User</strong><br />

Evaluation<br />

❚ Yogi Berra: “You can see a lot just by watching!”<br />

❙ Observation can buy you a lot<br />

❙ But is usually not enough: “Why are you doing that<br />

same error-generating thing over-and-over?!?”<br />

❚ Think-alouds<br />

❙ Get the users to say out loud what they’re seeing,<br />

what they’re doing, and why they’re doing it while<br />

they’re doing it<br />

9/19/00 Copyright 2000, Mark Guzdial 34


Right attitude in user<br />

evaluation helps alot!<br />

❚ Don’t treat it as just a test<br />

❙ Nobody wants to feel like they’re being tested<br />

❚ Treat the user as someone helping you<br />

make the software better—which they are!<br />

❙ Makes the user feel better<br />

❙ Also encourages more exploration, more<br />

freedom to critique, and more openness<br />

❙ “The problem isn’t me, it’s the software!”<br />

9/19/00 Copyright 2000, Mark Guzdial 35


What if you can’t observe?<br />

❚ Why wouldn’t you be able to observe?<br />

❙ Natural use is probably not in a laboratory setting<br />

❙ Your software may only work with lots of people using<br />

❚ Alternative: Questionnaire<br />

❙ Phrase the questions to get at what you want—and<br />

what you don’t know yet<br />

❙ Ask them what you should change and what you<br />

should leave alone<br />

9/19/00 Copyright 2000, Mark Guzdial 36


<strong>Designing</strong> questionnaires<br />

❚ Multiple choice and scalar questions (“on<br />

a scale of 1 to 5 where…”) are easier to<br />

analyze<br />

❚ Ask the same thing in multiple ways<br />

❙ Determine inconsistencies that may identify<br />

confusion<br />

❙ May find that there are subtleties you were<br />

missing earlier<br />

❚ Ask for volunteers for follow-up interviews<br />

9/19/00 Copyright 2000, Mark Guzdial 37


Evaluating Groupware<br />

❚ With the Web growth, more-and-more software<br />

designed for use in groups<br />

❙ Consider an auction site as an example<br />

❚ But that’s especially hard to evaluate!<br />

❙ Hard to reach the users<br />

❙ Different users have different roles: Buyers, sellers,<br />

brokers, admins<br />

❚ Often, goals more than just usability<br />

❙ Social agenda as well as usability agenda<br />

❙ Do you want broad representation?<br />

9/19/00 Copyright 2000, Mark Guzdial 38


Log-file analysis for<br />

evaluating groupware<br />

❚ If you can’t observe, get the software to do<br />

it for you!<br />

❚ Record all the users’ actions in a file (with<br />

permission!)<br />

❙ Analyze after the fact<br />

❘ What errors occurred often?<br />

❘ What were the common activities?<br />

❚ Challenge: But what were they trying to<br />

do?!?<br />

9/19/00 Copyright 2000, Mark Guzdial 39


Summary<br />

❚ Know thy users for they are not you!<br />

❚ Knowing the user and task is first goal<br />

❙ But note that technology can change that!<br />

❚ Match UI to user and task!<br />

❚ UI Design process: Waterfall and iterative<br />

❚ UI Evaluation<br />

❙ Before users, with users, with groups<br />

9/19/00 Copyright 2000, Mark Guzdial 40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!