In search of the perfect UI

User interfaces that are generally considered easy-to-use, like Windows, are built upon a set of rather arbitrary assumptions and artificial constructs that often compromise usability.

I think it's amazing that we're more than 20 years into the "personal computer age" and by and large, we still haven't figured out how to build a user interface.

Think about it: After 20 years, there's still no definitive example of "easy-to-use" in the computer world. We're left instead with a lengthy list of general guidelines and rules of thumb. Even user interfaces that are generally considered easy-to-use, like Windows, are built upon a set of rather arbitrary assumptions and artificial constructs that often compromise usability. Unfortunately, we're so used to thinking of these interfaces as being advanced that we're sometimes blind to how clunky they really are.

One great example, to my mind, is the desktop metaphor that's used in graphical operating systems. I don't know about you, but when I think of a desktop, I don't think of colorful icons and folders--not one of those things is on my real desk right now. I've got a stapler, a stack of books I'm supposed to be reviewing, an unopened box of CDs, an empty can of Mountain Dew, and a half-drunk bottle of water, but no folders, and certainly no icons. No, when I think of a desktop, I think of a horizontal wooden platform that holds up my computer's monitor, which, in a weird Twilight Zone kind of redundancy, has its own desktop with "My Computer" on it. It feels like I'm trapped in the mirror room in a funhouse when I think about it.

At least the desktop metaphor has a real-world counterpart to serve as an association point for a user, but what about the system tray, or whatever Microsoft's taken to calling it now? You can't get much more abstract and arbitrary than that. This is a feature that's been copied by every non-Windows graphical OS I've seen recently, in the name of consistency, but what real-world analog could this possibly represent--a toy drawer? How do you explain to someone what the system tray is?

I don't even need to go into the folly of putting the command to shut down a computer on a menu labeled Start, do I?

Consistency is a watchword in UI design. An interface that's consistent, the thinking goes, is easier to use than one that isn't. What's the standard for appropriate consistency, though? With what should a good UI be consistent?

Imagine that you're developing a new Windows app to replace a text-based, menu-driven terminal application, and most of the users of the new app will be veterans of the old one and have little Windows familiarity. Prevailing wisdom tells you that you should be consistent with Windows standards while building the UI for the new app, so you whip up a slick button-and-list box GUI for it. But wouldn't your users be happier and more productive if things were the other way around? Should the new app eschew Windows standards in favor of doing things the way users have always done things before?

Consistency becomes a more troubling concept when you move into the world of embedded software running on household electronic devices. Take, for example, my digital cable box, which I've been dying for a chance to complain about for months. I haven't been able to verify this fact, but I've been told that the software it runs is written in Java.

On the surface, this thing has a solid user interface that was obviously developed by computer-literate folks. The developers followed quite a few UI guidelines for consistency, made the box menu-driven, and provided shortcuts for most common tasks. I'm sure they were pleased with their work.

This wonderful user interface would be great for a computer, but it just isn't appropriate for a TV. For example, when you first turn on the box, it shows you the main menu. One of the options on it is …"Watch TV." Yes, that's right, this is a cable box that actually says to the user, "You've just turned on your TV. Would you like to watch it?" The program guide is another great example of inappropriate consistency. It's actually built to resemble a Web browser, if you can imagine that, right down to a banner advertisement for pay-per-view at the top of the screen.

Maybe we're not the problem
Maybe the problem isn't the software after all, but the hardware. Once again, we're so used to the status quo that we don't think it odd to interface with a machine using a keyboard and mouse. What is a mouse, but a ball mounted inside a box that we drag across a foam rubber pad? Never mind that we routinely ignore the joint problems the use of these contraptions poses; the fact that we use mice at all is proof that the real world itself is chock-full of horribly executed ideas of usability and inappropriate consistency. Have you ridden in a mid-90s model Ford car lately? Great cars, but who decided to put the cup-holders inside the armrest?

In that light, maybe it's not our fault that software is so hard to use.

How should user interfaces be improved to increase usability? TalkBack below or e-mail us.