Software usability has been on my mind quite a lot lately, and this morning a question that had been in the back of my mind forced its way to the front when I interacted with two automated phone systems back to back.
First I called the Delta SkyMiles number, because I wanted to know why their web site hadn't updated to show my Platinum Medallion status. The polite automated woman asked me to enter my SkyMiles number; since it's a fixed length number, as soon as I keyed it in I was done.
Next, I called into a ReadyTalk conference call, and was prompted to enter my "seven-digit conference number, followed by the pound symbol."
Um... If you know how many digits it is, why do you need me to enter the pound symbol to terminate the number? Hmmm...
Realistically this extraneous keystroke isn't going to be a deal-breaker for anyone, but why is it needed? When we're building software, we often lose track of the people who are using it, and just focus on the technology. Yes, the underlying functionality is critical, but if the software annoys its users, they're less likely to use it, and that often spells the death knell for a product or project.
So the next time you're coding the next killer app, you should ask yourself two questions:
- What annoys me about the software that I use each day, and why?
- What annoys the people about the last app that I built, and which they use every day, and why?
We can't always make every application perfectly usable, but if we keep these thoughts in mind, we can make them better than they would otherwise be. Try it.
 Yes, I'm obsessive sometimes. The web site does show the correct number of Medallion Qualification Miles (MQMs) but still shows me as Gold, and since I'm flying to Seattle on Sunday I wanted to double-check.
 Ten digits, if you must know.
 Whereas the expense reporting system I had to use yesterday was several orders of magnitude less usable, but that's another story...