Last week, I was heading out with a friend, and she offered to let me pilot her Acura. Settling into the driver’s seat, I reached down, pulled down a lever, and adjusted the way-too-high steering wheel into a more comfortable position. My friend stared at me. “I didn’t know it did that,” she said. She’s only owned that luxury car since 2006.
Have you ever experienced frustration with a product, only to be told by a friend or colleague, “Oh, that’s easy to change.” It can be a car, or a digital camera, or a cell phone, or a microwave oven, or a photocopier, or an office chair… or software.
The fault is with the designer, not with the user. Acura should have made it obvious that the steering wheel is adjustable. Digital camera and cell phone users shouldn’t have to dig through menus to “discover” how to use the product. And don’t get me started about photocopiers.
All too often, important features, functions and settings are totally invisible. Some controls can only be reached if you know where to look for them. Sometimes you may not even know that customizing the product’s interface or accessing key functionality is even possible.
It would be easy to take a cheap shot here, comparing the relative simplicity of the Macintosh to the complexity of Windows to the super-complexity of Unix and Linux. That wouldn’t be fair. Current versions of the Mac OS X are more complicated than earlier incarnations of the platform. Windows Vista has made strides toward simplification (although some, like User Access Control, made things worse). Windows 7 continues that welcome trend. And Linux and Unix… well, sorry, can’t do much there. Despite their GUIs, they still have a long way to go to achieve real consumer-level usability.
For casual users, the rise of the WIMP (Window, Icon, Menu, Pointing Device) GUI is a vast improvement over the command-line interface, where you must know which commands to type. Configuration wizards and pop-up contextual help are valuable aids. Still, user interfaces are too complicated, both with native apps and also with Web applications.
How many of your friends or family have configured the privacy settings on their Facebook accounts? Probably few even know that they can—and even fewer have done them correctly.
As a community and as professionals, we software developers have done a lousy job with usability. We often choose inappropriate defaults and don’t help our end users understand which behaviors can be changed. Our software isn’t sufficiently adaptive, intuitive and robust. The end result is that our customers are driving our applications with the metaphorical steering wheels set to an uncomfortable position