I have been re-reading some of my blog posts, and I noticed just how often I mention usability. I consider usability to be the most important feature a piece of software (or hardware, for that matter) can have, right next to reliability and security. Anything else is less important. The case for reliability and security is well established. Usability has been proven to be a vital feature as well, but for whatever reason, programmers do not seem to care for it too much. And when they do, they seem to frequently fail at getting it right.

Why is usability so important? Cell phones are a great example. A huge portion (40% is a number I read recently) of cell phones users do not use any feature of their phone except basic voice calls. Each user that only makes basic calls is a lost revenue opportunity for the cell phone provider. These users, by and large, are not using the advanced features, because they cannot figure out how to use them. Indeed, cell phones are so hard to use, I recently read that around 25% of cell phones users do not even use the address book, a feature that has been available for over a decade on cell phones. That is ten years to get a feature right, and it is still not usable by a whopping quarter of users.

If I opened a store, and 25% of my customers could not figure out how to open the door, I would be out of business. If I opened a hamburger stand, and 40% of my customers found ordering fries or a drink with their basic hamburger to be more work than it was worth, I would be out of business.

Software is just as bad. Microsoft Office is the extreme example of this. Most of its innovative or high powered features are buried in menus, non-standard toolbars, or otherwise hidden from the user. A user could be doing something manually for years before discovering that Office had a feature to do the exact same thing already built it.

A significant portion of computer users will not experiment above and beyond a single click to accomplish their goals. These users will not drag/drop, will not right click, will not double click, and certainly will never learn a keyboard shortcut. These are the users we see helplessly scanning the menus to perform even the most basic tasks. As a result, some programmers choose to dumb down their software to the point where it is nearly impossible to do anything faster than the speed of the menu system.

At the other end of the spectrum, there is software that is simply impossible to use efficiently, no matter how long you have been using it. Sadly, Microsoft Office also falls under this category. Although it is feature packed, there are few keyboard shortcuts to assist in the work. Even worse, using its advanced features is cumbersome at best. The auto formatting and other things it does to help the newcomer hold the advanced user back, forcing the document into undesired formats.

Usability is indeed a fine line; expose too much advanced functionality upfront, or force users to work in uncomfortable ways, and they develop a fear of the product. Making the software too easy to use holds people back from using your product to the fullest. But usability needs to be a top concern for anyone making any kind of interface, whether it be hardware or software, or even something as mundane as a common phone. Without usability, people will not use your product to the fullest, leading them to get little value from it and to not buy it. Poor usability nearly always results in poor market results (there are a few exceptions to this, like MySpace). Great usability almost always results in better market performance (the Macintosh is the exception to this rule). Google’s stunning rise to the top of the Web search market probably would have happened even if they were delivering the exact same results that MSN or Yahoo! was delivering, just because Google’s interface is superior to their competitors’ interfaces in every measurable way (note that Google employs zero JavaScript for their core search engine, let alone Flash, AJAX, spinning banners and dancing bears). You can ignore usability, but do so at your own risk.