Recently, I've come across some good books and articles about usability. When I thought about it, I realized that usability is universal and its principles can be applied by many roles related to software - software developers, business analysts, testers, creators of any software documentation, web site designers, and so on.

The first book is Don't Make Me Think by Steve Krug.

I really like this book. After reading it, I found myself in situations throughout the day where I'd realize that I'm thinking about something more than I should need to. For example, when I go to pay my credit card bill online. For each step in the process, I must stop, re-orient myself and think about what the site is asking me to do. In contrast, I can go onto amazon.com and order a book with hardly a thought at all.

Really using the advice in this book is tricky because it requires you to step back from the detail view of what you normally work on and view it holistically. We get so familiar with our own creation - whether it's a website or a UI form or a help topic - that to us, it's easy to navigate and use. It's difficult to see it anew as a user would that's seeing it for the first time.

Also, we can become somewhat attached to the idea that what we're doing is creating software (or UI or a website) that is user-friendly or is easy to navigate. We think that because our motivation is to help someone that what we create actually achieves that goal.

But sometimes the details of accomplishing the task in front of us are so consuming that we don't have the time to apply precision questioning as we go along and make inquiries such as: Does this really make my user's job easier? Am I really presenting the information in the best way possible? Are there multiple reasons that a user would end up on this form (or website or documentation)? As the user uses my form (or website or documentation), is there anywhere in the process where they need to think more than they should have to?

Usability analysis requires an awareness or a switch in perspective. Putting yourself in someone else's shoes so to speak. But it doesn't have to be an overwhelming all-or-nothing task. I have found the best and least overwhelming approach to usability is to gradually implement the principles. Select a few areas and then do some analysis. Make small, incremental changes.

A related article that really makes some great points is The Science of Great UI by Mark Miller. The examples he uses are taken from everyday user interfaces like a gas pump or elevator buttons. Really good stuff in this one, and the takeaways are simple and easy to understand.

After reading this article, I started viewing the user interfaces that I see every day (both software and non-software) with a fresh perspective. In my car, I'd think, "How handy is that, that they put the volume button on the radio so close to the station seek button?!" Or, "Why does the card swipe machine at the pharmacy make me use the keypad and then have to inconveniently switch to using the stylus?!"  Or even, "Why does the publisher of this UI article make me click a link to see each picture whereas I can see the graphics right there on the page in the print edition?!"

If you create anything that other people use, I highly recommend giving these a read. You may find some ways to improve your customers' experience.