[A picture of private offices at Fog Creek Software] Alert! This ancient trifle retrieved from the Joel on Software archive is well-past its expiration date. Proceed with care.

Joel on Software

Usability in One Easy Step (First Draft)

by Joel Spolsky
Tuesday, March 07, 2006

Bad usability in the design of aircraft controls can result in what is cheerfully referred to as CFIT: Controlled Flight Into Terrain.

The usability of your product may not be quite as critical. If you're lucky, the mistakes you make in usability design will merely cause people to lose limbs, or, heck, even just thumbs. No biggie!

In fact if you're extremely lucky, your unusable design will do nothing more than make people sad. They'll try to accomplish things, and either fail, or struggle, and for very real reasons this will literally make them unhappy. I'll explore the psychological reasons for that in a future article, but for now, suffice it to say that making the users of your design unhappy is not likely to be precisely the result you were looking for, unless you're designing a French film.

So, usability. That's really at the heart of good design, and I'm going to spend a lot of time on it.

The good news is that I can teach you everything I know about usability while standing on one foot. Ready? Here we go:

Something is usable if it behaves exactly as expected.

That's it! That's the whole story! As Hillel said, all the rest is commentary.

Let me run a little example by you.

Which is Easier to Use: Windows or Mac?

When you’re designing a product for humans, it helps to keep imaginary users in mind. The more realistic the imaginary user is, the better you’ll do thinking about how they use your thing.

My imaginary user is Pete.

Pete is an accountant for a technical publisher who has used Windows for six years at the office, and a bit at home. He is fairly competent and technical. He installs his own software; he reads PC Magazine, and he has even programmed some simple Word macros to help the secretaries in his office send invoices. He has a cable modem at home. Pete has never used an Apple Macintosh. “They’re too expensive,” he’ll tell you. “You can get a 3.6 GHz PC with 2 gigs of RAM for the price of...” OK, Pete. We get it.

One day Pete’s friend Gena asks him for some computer help. Now, Gena has a Macintosh iBook, because she loves white computers. When Pete sits down and tries to use Gena's Macintosh, he quickly gets frustrated. “I hate these things,” he says. He is, finally, able to help Gena, but he’s grumpy and unhappy. “The Macintosh has such a clunky user interface.”

Clunky? What’s he talking about? Everybody knows that the Macintosh has an elegant user interface, right? The very paradigm of ease-of-use?

Well.

On the Macintosh, when you want to resize a window, you have to grab the bottom right hand corner to resize it. On Windows, you can resize from any edge. When Pete was helping Gena, he tried to widen a window by dragging the right edge. Frustratingly, the whole window moved, rather than resizing as he expected.

On Windows, when a message box pops up, you can tab to a button and hit the space bar to press that button. On the Mac, space doesn’t work. When Pete got alerts, he tried to dismiss them using the space bar, like he’s been doing subconsciously for the last six years.

The first time Pete tried that on the Mac, nothing happened. Without even being aware of it, Pete banged the space bar harder, since he thought that the problem must be that the keyboard did not register his tapping the space bar. Actually, it did—but it didn’t care! Eventually he used the mouse. Another tiny frustration.

Pete has also gotten into the habit of using Alt+F4 to close windows. On the Mac, this actually changes the volume of the speakers. At one point, Pete wanted to click on the Internet Explorer icon on the desktop, which was partially covered by another window. So he hit Alt+F4 to close the window and immediately double-clicked where the icon would have been. The Alt+F4 raised the volume on the computer and didn’t close the window, so his double click actually went to the Help button in the toolbar on the window which he wanted closed anyway, and that immediately started bringing up a help window, slowly, so now, he’s got two windows open which he has to close.

Another small frustration. But, boy, does it add up. At the end of the day, Pete is grumpy and angry. When he tries to control things, they don’t respond. The space bar and the Alt+F4 key “don’t work”—for all intents and purposes, it’s as if those keys were broken. The window disobeys him when he tries to make it wider, playing a little prank where it just moves over instead of widening. Bad window. Even if the whole thing is subconscious, the subtle feeling of being out of control translates into unhappiness. “I like my computer,” Pete says. “I have it all set up so that it works exactly the way I like it. But these Macs are clunky and hard to use. It’s an exercise in frustration. If Apple had been working on MacOS all these years instead of mucking about with video iPods and other toys, their operating system wouldn’t be such a mess.”

Right, Pete. We know better. His feelings come despite the fact that the Macintosh really is quite easy to use—for Mac users. It’s totally arbitrary which key you press to close a window. The Microsoft programmers probably thought that they were adding a cool new feature by letting you resize windows by dragging any edge. The Apple programmers probably thought they were adding a cool new feature when they let you move windows by dragging any edge.

All those flame wars you read on the OS bigot websites about user interface issues focus on the wrong thing. Windows is better because it gives you more ways to resize the window. So what? That’s missing the point. The point is, does the UI respond to the user in the way in which the user expected it to respond? If it didn’t, the user is going to feel like they can't control the interface, and they're going to be unsuccessful. That's all there is to it. Something is usable if it behaves exactly as expected. Tattoo this on your forehead. Backwards, so you can read it in the mirror.

If you follow along in future articles, you'll see that just about everything I can teach you about usable design is going to relate back to this simple rule, so if for some reason aliens land in your garden tonight and whisk you away to the planet Kij8zxwrk, where you have no access to the Earth's Internet because TCP/IP doesn't work well when packets take hundreds of years to arrive, you already know enough to get a job as a pretty decent usability designer.

 


Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.



About the author.

I’m Joel Spolsky, co-founder of Trello and Fog Creek Software, and CEO of Stack Exchange. More about me.

© 2000-2014 Joel Spolsky