Cooper Part II Well-Behaved Products Etiquette, Posture, and Intermediates Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 632 User Interface Design and Development Cooper Ed4, Ch 8—10 Outline 1. Digital Etiquette (ch 8) 2. Platform and Posture (ch 9) 3. Optimizing for Intermediates (ch 10) 1 July 2016 © Jeff Offutt, 2004-2014 2 • Ch 8 : Digital Etiquette People respond to computer user interfaces as if they are sentient beings – – • This is not hard … – – • We should make our software considerate, likeable, supportive What does the human need ? But being considerate takes more time than being inconsiderate Inconsiderate people think they are being efficient …but many of their colleagues think they’re self-centered, curt, and cryptic Remember that the software is there to help the user, not the other way around People should think, computers should work 1-Jul-16 © Jeff Offutt, 2004-2014 3 Making Software Considerate • Take an interest – Considerate people ask what you like once, then remember – Google map, firefox, … – PPT never remembers my print or file saving preferences • Considerate products are deferential – Give users choices, not orders – Never judge users—don’t tell users they’re wrong, tell them the software doesn’t understand • Considerate products are forthcoming – Give users related information that might help them – Suggest possible words on misspellings Software should behave like a considerate human 1-Jul-16 © Jeff Offutt, 2004-2014 4 Making Software Considerate • Considerate products use common sense (cont’d) – Put controls in logical places – A considerate program would never think I want my class roster for the next semester • Considerate products anticipate human needs – Operating systems “pre-fetch” sectors that are near the last sector we read … why don’t web browsers do the same ? • Considerate products are conscientious – Consider the broader goal – When copying a file with the same name—let me merge, show me the differences, rename the old file, or simply overwrite – When printing color ppt to a black-and-white printer, should automatically change to “pure black and white” 1-Jul-16 © Jeff Offutt, 2004-2014 5 Making Software Considerate • Considerate products don’t burden you with their personal problems (cont’d) – A receptionist who complains about her schedule is annoying – Software should not : • Tell us it successfully saved … • Whine about a full recycle bin … • Tell us it cannot render some weird fonts … – Take care of your own stuff ! • Considerate products keep us informed – – – – – 1-Jul-16 Tell users about what matters to the users What can I do next ? How do I complete my order ? How do I quit ? How can I change something later ? © Jeff Offutt, 2004-2014 6 Making Software Considerate • Considerate products are perceptive (cont’d) – If I check my roster in the morning, then I log into the system that afternoon, shouldn’t it automatically tell me if anybody added or dropped the class since my last check ? – If I resize adobe reader to use the full height of my screen and be just wide enough to fit a document … shouldn’t it open the window with that size next time ? – When I print with “Adobe PDF” in PPT, I always choose “Handouts”, “Pure Black and White” and “Slides per page” = 2 ... PPT should notice and remember • Considerate products are self-confident – “are you sure ?” just gets in the way … on the other hand, the software should provide an “undelete” 1-Jul-16 © Jeff Offutt, 2004-2014 7 Making Software Considerate • Considerate software does not ask questions (cont’d) – Give users choices, not questions – Don’t offer choices nobody ever wants – Don’t offer choices whose consequences are not clear • “are you sure you want to quit? (yes, no, cancel)” • What does cancel do ? – About once a week I shut down my computer and go to bed … the next morning when I look at my computer I find a dialog box “something is still open, should I shut down?” … when I say “yes,” then it shuts down, wasting time as well as electricity • Considerate products fail gracefully – When you fail, apologize and try to fix it (kindergarten lesson) – Don’t throw away data when crashing … – If I fill out 10 form fields and get one wrong, keep the data from the other 9 1-Jul-16 © Jeff Offutt, 2004-2014 8 An Inconsiderate Question • • • • • • • • 1-Jul-16 Uhmmmm …. I didn’t change anything … All I did was print ! Did I accidentally change something else ? Did I make a change and forget ? Why are you bothering me ? Are you stupid or am I ? What does “Cancel” do ? Mommy ! Help ! © Jeff Offutt, 2004-2014 9 Making Software Considerate • Considerate products know when to bend rules (cont’d) – To reimburse a visitor for a trip, we have to create a record • Need a G-number, which needs a social security number ! • The automated system is stupid enough to check that the SSN is valid ... – Allow users to complete part of the process today and come back later to finish • Binary logic : yes/no, true/false, done/not done • Trinary logic : yes/no/maybe, true/false/possibly, done/not done/started … – In real life, we never get the rules right • We need some way to allow for when the rules don’t quite fit • Considerate products take responsibility – Software should understand hardware and deal with them – When my printer runs out of paper, my computer tells me “could not print” … so I fill the printer up and print again … then the printer finishes my first print and happily prints my second copy! 1-Jul-16 © Jeff Offutt, 2004-2014 10 Designing Smart Products • This section makes some interesting general points, but few specific actionable suggestions ( research agenda? ) • Smart products take care of users – They don’t behave intelligently • Smart products are proactive, not just reactive – Most computers spend > 90% of their time doing … nothing – Use the time to look for files the user might need – Cooper spends several paragraphs complaining that computers don’t use spare cycles to help the users, but does not offer any other concrete suggestions 1-Jul-16 © Jeff Offutt, 2004-2014 11 Designing Smart Products • Smart products have a memory : A way to track and use actions that users take over multiple sessions – Remember previous preferences and choices – “Dynamic defaults” resets defaults based on the user’s past history – It’s easier for programmers to let the UI ask the user what to do each time – it’s easier for users if the UI remembers • What should a program remember ? EVERYTHING ! – Disk space is now not a problem for saving information – save everything ! – My TA emails me the same file at least once a week and I put it in the same place every time … yet every time, my mail client asks me where to put it … can you imagine an assistant acting that stupidly ? 1-Jul-16 © Jeff Offutt, 2004-2014 12 Memory—Auto-customization • Remember what the user did the last time • Avoid unnecessary questions • Imagine a secretary that asked you every time whether you wanted copies on front and back! • Dialog boxes ask questions, buttons offer choices 1-Jul-16 © Jeff Offutt, 2004-2014 13 Auto-customization Examples • MS Word : I always put my files in C:\offutt But MS Word always thinks I’m going to open a file in C:\Program Files\ … (took me years to find the customization!) • PPT : I often print “Handouts”, “2”, “Pure black and white” If I print several PPT files in a row, I have to click all three boxes every time! • ATM : I usually withdraw $150. Why does the ATM always use $40 and $60 as defaults? 1-Jul-16 © Jeff Offutt, 2004-2014 14 Designing Smart Products • Task coherence : Our goals and how we achieve them is usually similar from day to day – – – – Similar usage patterns in software Often the same document, or documents in the same directory Why should I tell Word to full justify paragraphs … every time ? Why should my phone keep asking “did you say …” when I say “yes” … every time ? – Applications should remember how big they were and where they were on-screen – If a user goes through the same sequence of commands several times – the application should automatically create a macro If it’s worth the user’s time, it’s worth the software’s time to remember 1-Jul-16 © Jeff Offutt, 2004-2014 15 Outline 1. Digital Etiquette (ch 8) 2. Platform and Posture (ch 9) 3. Optimizing for Intermediates (ch 10) 1 July 2016 © Jeff Offutt, 2004-2014 16 Ch 9 : Posture Posture The way the program appears to users Platform Type of computer Desktop, web apps, mobile, … Posture depends heavily on the platform 1-Jul-16 © Jeff Offutt, 2004-2014 17 Posture for the Desktop 1) Sovereign – Only program running, user’s complete attention, full screen – Editors, spreadsheets, games, browsers (usually) – Experienced users—optimize for speed and power 2) Transient – – – – Invoked when needed, does something, goes away Scanning a picture, file manager, email, music players Intermittent users—clear instructions, less screen, larger widgets Avoid dialog boxes and remember state from last use 3) Daemonic – – – – 1-Jul-16 Services that do not interact with the user Printer & network drivers, compilers Try not to bother users unless absolutely necessary Include configuration panels, but simple and streamlined © Jeff Offutt, 2004-2014 18 Posture for the Web • HTML supports a very limited widget set – Javascript can be used to create many more widgets, but that is relatively complicated – This is becoming more common • On the other hand, it takes fewer technical skills to implement a GUI front-end with HTML than with other technologies • Complex, multi-screen transactional applications are just as hard, and perhaps harder, to develop • HTML provides greater separation between engineers, GUI designers, and graphics designers Some Web-specific usability points … 1-Jul-16 © Jeff Offutt, 2004-2014 19 1. Sovereign – – – – Web App Usability Make users feel they are in an environment, not web pages Design as if desktop applications Emphasize interaction, not navigation Hide request / response cycle 2. Transient – Quick occasional access to information or functions (login) – Small, simple, non-intrusive 3. Internet-enabled – Uses internet, but not from inside a browser – Java applets, tools, music players – Can access disk and have controls HTML does not support 1-Jul-16 © Jeff Offutt, 2004-2014 20 Posture for Mobile Devices • Very small screen and keyboard – Help users with the fat finger problem • Avoid huge hierarchical menus that are very confusing – All functions are equally difficult to find – But some are more commonly used • • • • • • Make it easy to synchronize with full computer UI designer needs to specify the buttons on the hardware Function bloat : who uses all that junk? No pop-up or dialog windows Avoid dragging Controls should be large and bright 1-Jul-16 © Jeff Offutt, 2004-2014 21 Mobile Postures • Satellite (PDAs, palm pilots, kindle, …) – Allows part of our desktop environment to go mobile – Periodically synchronize with the mother ship (desktop or the web) – Emphasizes viewing and retrieving data • Standalone (phones) – Small, complete “pocket” computers – Full interaction, but small screens, text, and controls – Often mimic desktop applications but with reduced functionality • Tablet – Same restrictions as standalone, but less severe – Mostly only allow sovereign applications (full-screen) 1-Jul-16 © Jeff Offutt, 2004-2014 22 ATMs and Kiosks • These are publicly accessible computers with specialized applications • Consider the environment: – Lighting, noise, privacy, security – The ATM in Johnson Center blocks foot traffic • Kiosks are infrequently used • Consider the main uses – Transactions : provide a service (ATM, tickets, self-checkout) – Exploration : present information (museums) • No dragging, scrolling, or on-screen keyboards Optimize for first-time users 1-Jul-16 © Jeff Offutt, 2004-2014 23 Designing for Embedded Systems • Embedded software is integrated into a device that is not primarily for computing – Phones, PDAs, remotes, ATMs, TVs, appliances, cars, planes, … • The input / output devices are often much different – Often much more constrained in abilities • Designing the UI is very different from designing UIs for desktop applications – – – – – 1-Jul-16 Don’t think of the product as a computer Coordinate UI design with hardware design External environment will affect the UI Should use many fewer modes Navigation is harder and should be reduced © Jeff Offutt, 2004-2014 24 Posture Summary Don’t design everything like a sovereign Effective UI designers must know their users 1-Jul-16 © Jeff Offutt, 2004-2014 25 Outline 1. Digital Etiquette (ch 8) 2. Platform and Posture (ch 9) 3. Optimizing for Intermediates (ch 10) 1 July 2016 © Jeff Offutt, 2004-2014 26 Ch 10 : Design for Intermediates • Designers are usually experts – They view all functions as having equal weight • Marketing want UIs designed for beginners – They sell to beginners – Many have only novice semantic knowledge • Most users are in between—intermediates ! Don’t weld on training wheels 1-Jul-16 © Jeff Offutt, 2004-2014 27 Distribution of Users Beginners What does the application do? Intermediates What doesn’t it do? Where is it? How do I print? Where do I start? Forgot how Remind me … Can I undo? More features? Experts Automate? Shortcuts? Can I change? Customize? Keyboard shortcut? Dangerous? 1-Jul-16 © Jeff Offutt, 2004-2014 28 Most Users are Intermediates • Beginners are incompetent—and nobody likes that – They either move up or move on • Experts often move on – Or use it less and become intermediates Optimize for intermediates 1-Jul-16 © Jeff Offutt, 2004-2014 29 Inflecting the Interface • Inflecting means organizing the UI to minimize the most common navigation – Most commonly used functions up front – Less frequently used functions can be on the back shelf • Choose defaults for intermediates – Microwaves : Make the “timed cook option” an easy default • Very valuable functions can be harder to reach – Slide animation features are deeper than font changing – Google mail is default, google drive is further in Users will make a strong effort if the rewards justify it 1-Jul-16 © Jeff Offutt, 2004-2014 30 Progressive Disclosure • Advanced controls are hidden in an expanding pane – PPT – drawing palette – bottom right arrow – Google mail, hover over “Starred” to get other folders • Criteria for organizing : – Frequency of use—how often “typical” users use the functions – Degree of dislocation—how much the screen and UI changes when the choice is made – Degree of risk exposure—functions that are irreversible or dangerous • Remember that advanced users will eventually want shortcuts to some of these functions – And their frequency of use may change 1-Jul-16 © Jeff Offutt, 2004-2014 31 What Beginners Need • • • • Help beginners become intermediates They want actions, not theory They want examples, not definitions Match their mental models to – Reduce errors – Hasten learning • Extra help must disappear for intermediate users Imagine users are very intelligent but very busy 1-Jul-16 © Jeff Offutt, 2004-2014 32 What Experts Need • Remember the experts are often more vocal and influential in who uses your product – Beginners listen to experts (even when they should listen to intermediates) • • • • Experts want shortcuts to everything Experts are often also frequent users Experts want higher information density Experts will adopt new features quickly 1-Jul-16 © Jeff Offutt, 2004-2014 33 What Intermediates Need • Mostly, they need attention! – Far too many products are designed for beginners or experts, rather than the majority of users • They need : – Fast access to common functions – Reference materials—online help (or the interweb) – Knowledge that advanced functions are available, but not yet necessary • They do not need : – Long explanations When making tradeoffs, intermediate users should usually have priority 1-Jul-16 © Jeff Offutt, 2004-2014 34 Summary : Three Powerful Basics 1. Be polite 2. Think about how you present yourself 3. Optimize for the intermediate majority Remember to think about the users and you’ll be fine 1-Jul-16 © Jeff Offutt, 2004-2014 35