Software is a means to an end. I don’t use software for its own sake (unless it is a game), but to get something done. If I can do it better without software, then I won’t use it. In short, software is a necessary evil.
This sounds harsh, but this mindset is needed to counter software that needlessly draws attention to itself. This software is bad because it is not only unpleasant to use, but the time spent on the flashy non-features is time that could have been spent implementing useful features, testing or optimization. That kind of software is based on a mistaken view that users use software for its own sake.
This brings me to a book I read a while ago and that has shaped a lot of this article: http://en.wikipedia.org/wiki/The_Humane_Interface
One excellent idea was measuring the quality of an interface by how many clicks, keystrokes, etc… were needed to finish a task; the lower the number, the better the interface.
For instance, the best and worst software I used is my computer’s CD player. It’s best when it just plays my CD the moment I insert it in the drive as it requires no interaction. It’s worst when it asks me ANY question before playing. I don’t care what the question is because it doesn’t affect the playing. Playing CDs is easy; that the system couldn’t do it means it failed. In that moment, it became poor software.
Returning to the interaction measurements, we can extend the concept to time spent with a program, which subsumes performance and ease of use. This would consist of:
- Load/Processing time.
- Number of clicks, keystrokes, etc… required to do a task.
- Time it takes to find what s/he needs.
Here are some other metrics:
A user interface science?
The book made another good point: avoid modes. For instance, the letter ‘k’ on my keyboard can generate a lowercase or uppercase k with the same keystroke based on the status of the caps lock key (the mode). Modes are a problem because the program behaves differently for the same input, which is confusing. The caps lock is easy to see, correct, and is benign. However, what of other software modes that can be disastrous if you don’t know you are in them?
Having said all that, the software industry faces a chicken-and-egg problem. On the one hand, users want truly good software. On the other hand, they won’t know it’s truly good unless they use it for a while. But their time is limited so they must decide based on superficial impressions. This is a good argument for the same flashiness I decry.
Flashiness is easy to demo, makes good copy and good screen shots on a web site. Users with little time would naturally gravitate to the prettiest package.
Maybe it’s telling that some of the best software out there was a labor of love, written with no intention of fame or gain?