It’s the user interface, stupid!

or, why the iPod is raking in the dough and Linux is still a non-issue on the desktop

I hate my cell phone. It’s a modern, Kyocera flip-phone with a color LCD and a camera and an Internet connection, and I hate it. But it’s a step up; I hate it less than I’ve hated any other cell phone I’ve ever owned.

The first cell phone I owned had a user interface so abysmal that in order to access the built-in contacts list, I had to press nine buttons. Considering that here in the US, a phone number is only seven digits long without the area code and ten digits long with the area code, that’s almost unbelievably lame.

For some reason, every cell phone in the world has a crap user interface. It’s a testament that I hate my new cell phone least of all, and consider it a great leap forward, because its interface is merely awful and not abysmal.

The Apple iPod is, by any measure of the word “success,” a wild success beyond what even its creators could possibly have predicted. It’s selling like mad; it’s become a cultural icon; car manufacturers are putting iPod docks in their dashboards, purse manufacturers are making purses with iPod slots. Yet for all that, it’s a simple gadget. It plays music, that’s it. It’s expensive; it llacks the fancy features (such as radio tuners) of cheaper MP3 players; what’s the big deal?

The big deal, as Apple understands and everyone else seems to have forgotten, is that user interface matters. The iPod is a runaway success because it does one thing and does it well. The user interface of the iPod is a marvel of simplicity and elegance; all the other MP3 players on the market seem awkward, clunky, and clumsy by comparison.

Nobody gets it, except for Apple. Nobody understands that the way a person interacts with a device is as important as what the device does.

Take my car stereo (please!). It’s a Pioneer model, and it’s a microcosm of bad design. I can see my car stereo being used to teach a class in “How to Fuck Up a User interface 101.”

It does two things: it plays CDs and it plays radio stations. The power button is also the button that switches between radio and CD; you want to turn it off when you’re listening to a CD, you hit POWER POWER. Intuitive, right? Uh, no. But the controls won’t tell you this; the power-cum-radio-cum-CD button is labelled “Mode.”

Not that you’ll ever be able to read it. It’s labelled “Mode” in five-point light-gray type on a dark-gray background. It’s difficult to read if you’re sitting nose to nose with the faceplate; from the driver’s seat, two and a half feet away, it might as well not be labelled at all.

It has a number of different controls and modes. Many of these are reached by pressing a “Shift” button, also labelled in five-point type; the button is tiny, about as big around as the guts of a cheap disposable pen, and you hold it down wat the same time as you press one or more other buttons to access various functions.

These people were not thinking. Not even a little bit. They clearly did not think about the fact that the operator would be sitting too far away to read microscopic print, nor about the fact that the operator would be working the device while driving a moving vehicle in traffic. And, like my cell phone, my car stereo has a user interface which is actually better than most. Shelly’s car stereo has an auxiliary input mode which you get to by pressing the power button; to turn the stereo on and off, you press the power button and hold it down for two seconds. To insert or eject a CD, you remove the stereo’s face plate. (No, it’s not a CD changer; strictly one disc at a time!)

User interface matters. User interface on an MP3 player makes a difference to the user’s experience with the gadget; user interface on a car stereo can make the difference between life and death. Yet every day, we are surrounded by devices, from stereos to cell phones to fax machines to microwave ovens, that have a crap user interface. Manufacturers think that what attracts us to their products is a long list of features–“Look! This car stereo pulls in stations from Kenya, and then translates them into English while piping them directly into the brain of the driver!” They add functions to their gadgets without ever thinking about the way people use their gadgets.

I don’t want a video game console that plays CDs. I guaranfuckingTEE you that if I’m buying a video game console, I already have a CD player. If for some reason I don’t have a CD player, I am not going to have a set of external speakers either, which means I’ll be listening to my CDs through…what, the shitty speakers in my TV set? I don’t think so. I buy a video game console to play video games. If the console plays the games I like, I buy it. If it does not play the games I like, I don’t buy it, and making it play music CDs will not make me buy it, okay?

Ditto for MP3 players. If I buy an MP3 player, it’s because I want to fill it up with songs I like. If I want to listen to the radio, which plays commercials and lots of songs I don’t like, I can do it for a whole lot less money than an MP3 player–and if I’m giving the choice between listening to songs I like and songs on the radio, I’ll take the songs I like, mkay? Every supposed new “iPod killer” that comes out, and falls flat on its face, fails for the same reason: they take an MP3 player, add something else on to it, and glue it all together with a crap user interface–all without the slightest thought to how people use the goddamn thing.

I just put the new Fedora Core on my Linux machine. Linux, once the choice only of hard-core technogeeks, really has come a long way. But it still has very serious interface problems.

Every Linux enthusiast I’ve ever spoken to raves about Linux’s functionality, its price (free), its power, its features. Why, they all lament, do people continue to use Microsoft crapware, when a better and more secure operating system is available for free?

It’s the interface, stupid. I’ve been using computers since 1976, I’ve been using Unixes of various flavors for almost as long as Unix has existed, and it’s still a pain in the royal fucking ass for me to install and configure a Linux system.

It’s worlds better than it was. Good Linux distros come with bootable CD-ROMs that take you through the installation in a graphical environment; indeed, the installer for Fedora Core is now prettier and more elegant than the installer for Windows XP.

Prettier and more elegant, but fragile, so very, very fragile.

When I ran that pretty, elegant installer, it got about a third of the way through the install, then suddenly disappeared to be replaced with several screenfuls of decidedly un-pretty and unfriendly text. Error messages, stack backtraces, exceptions…yuck.

Restarted the installer, same thing again. And again.

I finally puzzled out from the cryptic exceptions and backtraces that the installer was having a heart attack over a piece of hardware in my system; pulled the network card, and the install worked. (Strangely, when I put the card back, it was recognized and worked without a hitch.)

It’s the user interface, stupid. I don’t care how many features you have or how powerful you are; I don’t care if you’re cheaper than an iPod or cheaper than Windows. It’s the user interface, stupid! Even today, the Linux interface still feels unnecessarily clumsy and awkward compared to the Mac’s or (God forbid) even the Fisher-Price interface Windows XP offers us. For a long-term Linux user, the various awkwardnesses and clumsy design choices of the interface are not an issue, because the long-term user has learned ways to deal with, or occasionally work around, the shortcomings in Gnome and KDE, and of course he can always drop down to a terminal window (it’s the user interface, stupid!) to get things done.

Back to my cell phone. It does not do the things I think it should. It offers me call-waiting, for example. I’m on a call and another call comes in; it seems to me that pressing the “answer” button will let me talk to the new caller. But it doesn’t. It brings up a menu asking me what I want to do. Put the old caller on hold and answer the new call? Ignore the new call? (If I wanted to do that, I would not press any button, goddamnit!) Hang up the old call and take the new?

Now, when I end the new call, and want to go back to the old, I can’t press the “answer call” or “hangup” button. Instead, I press the “options” button. Do I want to hang up? Do I want to swap calls? Do I want to disconnect both calls?

Now, you might think that swapping calls would put caller #2 on hold, and give me #1, but no. It puts both calls on hold, then gives me another menu. Do I want to release #2 and pick up #1? Release #1 and pick up #2? Hang up both? No, goddamn it, I want to swap calls! You know, swap one for the other! Trying to figure all this out quickly is a pain in the ass, especially in a darkened room.

It’s the user interface, stupid. You want my money, think about how I am going to use your gadget. Don’t make me read your mind. Don’t get clever by making the Power button do a whole bunch of other stuff as well. Don’t present irreleavnt choices when it should be clear from context what I’m trying to do. Use your head. Think about the environment where your device will be used.

You want to know why Apple came in and overnight 0wnz0r3d the entire MP3 market? It’s the user interface, stupid!