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.