Skip to main content

skip to main content

developerWorks  >  Web development  >

The cranky user: Spare me the help

With friends like Clippy, who needs enemies?

developerWorks
Document options

Document options requiring JavaScript are not displayed


New site feature

Check out our new article design and features. Tell us what you think.


Rate this page

Help us improve this content


Level: Introductory

Peter Seebach (crankyuser@seebs.plethora.net), Writer, Freelance

06 Oct 2006

Everyone knows that computer applications (and the people who write them) just want to help. Learn how poor design decisions can turn the most well-intentioned wizard into a hated enemy, and the most reasonable seeming default into an unreasonable one.

This scene has showed up everywhere from video games to blockbuster films: a kitchen that looks like it got hit by a tornado, a beleaguered adult, and a small child, utterly coated in spilled food, who proudly announces, "I'm helping!"

On the surface computers seem to have very little in common with small children, but in fact history is rife with examples of computer programs designed to help in just the way a peanut-butter-smeared child might. That is, by making a bad situation even worse.

My all time favorite program in the hapless-helper category is probably Microsoft Bob, a Windows UI agent that came out sometime around 1995 and was deprecated (to the tune of howling laughter from the user community) not much later. Among other things, Microsoft Bob allowed you to set a password. If you guessed the password wrong too often, however, kindly Bob would suggest that perhaps you had forgotten it, and would like to pick a new one.

This month I'll look at this and other examples of computer helpers that do more harm than good.

The for-dummies interface

I wrote previously in this column about Clippy, one of the most-hated entities in the history of computing. Like Microsoft Bob, Clippy was intended as a friendly user interface, in this case for Microsoft Office 97. Clippy might have been merely disliked on machines an order of magnitude faster than those on which he ran. As it was, many office machines were paralyzed by the effort of loading an animated character on top of the already huge Microsoft Office suite.

One of the most disturbing examples of Clippy hate was a much-circulated in-joke: a plausible-looking screen shot of a Word document with the text "I just cant take it anymore!" The word cant is underlined as a probable grammatical error, and there's Clippy in the corner saying "Looks like you're committing suicide!"

The problem with using animated characters as UI agents is that most of them disrupt work rather than speed it. If the program's logic for predicting your next move isn't perfectly accurate, it just gets in the way. Clippy was especially loathed for his near-viral ability to re-enable himself after being told to disappear, although this was disabled in later versions.

Animated gizmos like Clippy and Microsoft Bob pop up because some novice users require them. If your assistance system is purely user-driven, many new users will never find it. What neophyte knows enough to figure out where Word's "business letter" template is? Such guidance works only if the heuristics and resulting automated actions are a good match for the user, however. A user at a company with strictly formalized rules for the content and style of business letters could face serious consequences for simply following the instructions of dancing office supplies.

As long as the heuristics of UI agents are geared to the needs of novice users (which are, after all, easiest to predict), they'll be an inconvenience to more experienced ones. If you already know what you're trying to do, Clippy and Bob probably probably can't help you do it. And if you don't know what you're doing, they probably can't tell you.



Back to top


Unreasonable defaults

I recently spent a chunk of time hovering over a scanner, scanning in hundreds of documents. As I quickly learned, the scanning software had, well, some quirks. After groveling in the preferences for a while I managed to convince it to scan documents as images. But for every new document it selected PDF as the save format. If I wanted a different format, I had to manually select it from the pop-up menu for every document I saved. There was no way to re-set the default, and the program wasn't smart enough to adjust itself after a certain number of manual settings. No matter how many times I selected TIFF, the software was certain that this time, surely, I wanted PDF.

Safari's much-vaunted (and admittedly delightful) text-scaling feature presents another example of what I call an unreasonable default. While the browser allows you to scale up text size in a particular window, these changes don't persist. If you middle-click on a link to open a new window, the new window always starts back at the default text.

The whole idea of text-scaling is that it allows users to politely abstain from reading microscopic text on pages that specify font size. If I'm opening a number of windows on a site, I probably want to see the same text scaling across all the pages. Instead, I get the unreadable text I originally tried to scale up from. Why is that? Surely, no one has ever said "Gosh, if only I could get the browser to forget that preference setting I just made." But for whatever reason, scaling isn't sticky. It would be nice if you could at least set a permanent scaling option in the preferences.

Don't get me wrong: I think reasonable defaults are a good thing. But I do wish the unreasonable default wasn't so oddly prevalent. Developers simply decide what they think is the most obvious default, and then forcibly select it for you over and over again. You can't change it no matter what you do. Next time, let users override the default, and make sure the override sticks.



Back to top


Ads in all the wrong places

It seems odd that the same people who would certainly not expect Clippy to write their letters for them would let similar software generate their banner ads. Keyword matching is a quick-and dirty (or cheap-and-lazy) way to generate targeted banner ads. Rather than figuring out which sites want which ads, or which words best represent a given site, keyword matching lets clients come up with general rules and produces generic ads based on those rules.

The trouble is, like Clippy's heuristics, the rules tend to be oversimplified and, thus, don't always work. Perhaps the most severe example of keyword matching gone wrong involved an online vendor whose generic ads claimed it had humans available for purchase. There was a major outcry before people realized that the computer generating the ad text was unaware of the meanings of the words involved.



Back to top


Go ahead, slow down my day!

Ahh, gotta love those management buzzwords. Workflow optimization sounds like something that involves seminars in far-away places. In reality, it often involves yet another misfired attempt to make users' lives easier.

From a developer's perspective, the idea is simple: you analyze the steps involved in a task, then make it easier to get through them quickly by removing redundant steps. For instance, a personal finance package might use the date of the last-recorded transaction as a default date for a new transaction. Many programs are optimized to automatically bring data from previous transactions into new ones. Words are completed for you as you type.

Good workflow optimization actually does reduce the hassle of daily tasks. Even something as simple as automatically completing familiar words in a form can save the user time and optimize performance. When the personal finance software I use automatically completes category names for me, I'm glad for the help. In an older version of the software, however, that same feature was way too aggressive. If you had a category whose name was a prefix to another category's name, you couldn't enter it. As soon as you tried to select it, the autocompletion facility would fill in the longer name. Pre-filling fields correctly saves time and reduces errors; pre-filling them poorly not only slows users down, but introduces errors.

The problem with workflow optimization is that developers often fail to take into account the diversity of workflows. Users performing different tasks don't need standardized, cookie-cutter assistance from their tools. A feature that substantially improves performance on one task might cripple another.



Back to top


Turn. It. Off.

When designing a so-called helpful feature or interface, start by ensuring that users can turn it off. Oversight is inevitable, and any system will run into some problems it can't solve. Enabling users to pull the plug avoids the most dreaded problem of all: the malfunctioning system from which there is no escape. Brian Kernighan's most damning statement about the programming language Pascal is just as apt when discussing many helper programs: "There is no escape."

Providing an escape hatch reduces the pressure to make your helpful idea perfect, with the end result that you might make it very good instead. By taking on a possible task, you allow for some hope of success. Just remember that no matter what the feature -- from autocorrection to automatic timestamps -- there will come a day when it's just not what the user wants. If you try to accommodate every possible circumstance, the result will be an incoherent disaster. If you pick a subset of cases and handle them well, users will actually benefit.

This week's action item: Pretend you're Clippy. Walk up behind a stressed-out coworker and say something to the effect of "Hey, it looks like you're trying to debug a program! I can help you do that. Is the problem (a) crashing; (b) unexpected behavior; or (c) a vague specification?" Have fun, but be prepared to run.



Resources

Learn

Discuss


About the author

Photo of Peter Seebach

Peter Seebach has been using computers for years and is gradually becoming acclimated. He still doesn't know why mice need to be cleaned so often, though.




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top