Wikipedia has a nice definition when it comes to ‘usability’ in relation to computer science:
“the elegance and clarity with which the interaction with a computer program or a web site is designed”
A very, very important part of designing applications and websites and at the same time also one of the most difficult things to achieve. People often think that coming up with the technical stuff, the way things work, is what makes designing so difficult. Partly it is, but I think the real hard work is in making things work in a way that is both logical and intuitive to the user as well as technically advanced. Face it, the best applications aren’t necessarily the ones that are technically the most advanced or best looking. No, the real winners are those that the user likes to use, and what a user likes to use is often something simple. Something he can understand.
So why is it so hard? Well because developers like to be advanced, they like to offer everything they’ve got and most importantly they think differently. A developer is used to solving puzzles all day long. “How am going to do that while x and y and z……..” or “Mmm….changing this influences v which in turn causes w“. They’ve got complicated Functional Designs to adhere too and existing code that needs to be incorporated and they are used to working in lots of different environments. In doing so they quickly learn not to think ‘ordinary’. In fact the best trade a good developer could have is to think ‘outside-the-box’!
The problem is that normal users are not trained like that. For them an application sometimes is nothing more than a brightly coloured screen with lots of information and buttons. Understanding what that information is there for and how clicking the buttons will cause the application to work, is often a big mystery to them. Especially users that are not used to working with computers.
Most users tend to think in very distinct patterns. They like actions and buttons they recognize from other applications or settings and expect them to do more or less the same. So clicking the “Exit” button should result in closing the application, stopping any actions going on and maybe saving anything still open. If an “Exit” button starts doing other things, like showing the user a popup congratulating him with his birthday, you would get really confused users and they would lose trust in your application pretty soon.
Sounds logical you think? Well you’d say so…..
About a year ago I was in session where a developer of a large International company presented a prototype of some new functionality in an application. While going through a Wizzard like set of screens I suddenly noticed something. At the bottom of the screen two buttons were located. “PREVIOUS” and “NEXT”. Nothing wrong there you think?
|You don’t see it?
Let me explain with a second picture:
Do you see it now?
Now this example is an obvious one but building a usable and intuitive application is really hard work. A great book on website usability is “Don’t make me think” by Steve Krug. Not only is it really informative it’s also really funny if you’re a developer yourself. You’ll start recognizing the pitfalls you’ve stepped in yourself (Yes, I’m absolutely talking about myself here). Check it out, it’s certainly worth it!
p.s. By looking up his site for this post I found out Steve Krug wrote a second one called “rocket surgery made easy” on how to do usability testing yourself. I ordered it immediatly!