Monday, October 26, 2009

one thing

Over at Coding Horror, Jeff Atwood complains that users don't follow directions. When they post on his forum, they don't use appropriate markup, they don't look at the preview below the text-input area, and they don't press RETURN twice between paragraphs.

Here's my response:

I am a professional communicator. Specifically, I am a book author, computer programmer, teacher (20 years experience) and theatre director.

Here's what I've learned: you can rely on people to take in ONE piece of information per message.

By "message," I mean a single piece of communication: an email, a memo, a sign, a window.

If you send out an email saying, "The party is tomorrow at four. It's BYOB. Also, please bring five dollars to tip the band," you will get people who show up at four but forget to bring booze or money, people who bring money but no booze and show up an hour too early, and people who bring booze only and show up on the wrong day.

I am not saying that you can never include multiple pieces of information in a communication, and I realize that sometimes it's impossible to limit yourself to just one. I'm saying that each additional piece of info introduces risk.

Advertisers learned this rule decades ago. UI designers don't ever seem to learn it.

A good UI developer should take one look at the cluttered interface above (too many buttons, too many screen regions competing for attention, too many ways the user has to interact -- tags, button clicks, typing...) and shudder.

When you learn the one-piece-of-info rule, let yourself get mad. Spend an hour railing at users. Call them idiots; bemoan the dumbing down of culture and the lack of attention span.

Then get over it and accept the clay you have to sculpt with. Rail all your want at a mountain for being tall. After you're throat hurts from screaming, you still have to climb the mountain.

After designing a UI, ask yourself, "What can I cut?" To paraphrase Orwell, "The destruction of controls is a beautiful thing." Does your UI contain any nice-to-have (but not mandatory) features? If so, cut them. You can always make an alternate UI for power users.

Your goal should be ONE UI element. You will probably be unable to reach that goal, but give yourself the challenge anyway.

Let's say that the closest you can get is four. Okay, you know you've introduced risk. What can you do to minimize that risk as much as possible? Can you make each of the four elements a different color so that they'll stand out and call attention to themselves? Can you use graphics and formatting (bold, italic, etc.) to do the same thing?

People here championing WYSIWYG over ascii-with-tags are absolutely right, and I'm saddened that not everyone here gets that. Of COURSE they are right! WYSIWYG is WYSIWYG. If you expect users to look back and forth between a preview and a text-input field, you will be disappointed a lot of the time.

By the way, I've participated in forums for years. I am a pretty smart guy. Yet I've made the mistake of ignoring previews. Let me explain how a smart person might do this: you have something to say and it's important to you. So you work hard trying to express yourself clearly and passionately. When you're done, you do the natural thing: you press the POST button. You forget to check preview because it's not natural. You don't do it when you speak, you don't do it when you IM or type an email, etc. You're too caught up in the content of what you're saying to remember to check the format.

If you MUST use the ascii-plus-preview method, put them on two separate screens: the first screen should be a text-input field and a SUBMIT button. After clicking SUBMIT, you should then see a preview which you can post or edit.

Wizards are much better for beginners than cluttered screens, as long as each wizard step does not become a cluttered screen itself. Power users rightly hate wizards, so give them an alternate screen with all controls in the same place.

I'm surprised anyone would ask whether or not the UI should allow single carriage returns between paragraphs. Of COURSE it should. It doesn't matter how many people compose paragraphs this way. The point is that you should never veer from a UI standard unless you have no choice.

My word processor accepts every carriage return as a line feed; so does my email client; so does my code editor; so does my text editor. As I user, I assume that when I press return, the UI will understand that my goal is to move the cursor to the next line. I've been trained to think that way by thousands of UIs that conform to that rule. Ignore that at your peril. If you do, you should expect your users to screw up.

Should we blame the users? Should be blame the designers? STOP BLAMING PEOPLE. It's counter productive. Instead, deal with reality and build systems that integrate well with human nature.