For starters, what does the title mean?
"Don't make me think" is supposedly the first law of usability coined by Steven Kruger who is famous for his book by the same name. It is one of my favorite books and i think its a must read for anyone working on designing and developing user interfaces (though the examples are slightly outdated - first edition was out in 2000, the concepts are relevant none the less even now). The premise is simple. The best designed user interfaces are the ones which do not make the users think. I look at a web site and I should know exactly what it does. Alternately, I have a task to perform, and the site makes it very obvious and self-evident on how i could accomplish it.
There should be no doubt in our mind that increasingly the user experience (abbreviated as UX - the latest buzz word/fad) is what defines the application or product. Features and functionality are of course important, but an interface that is engaging and exciting can make all the difference. It does not mean that one will have to provide flashy interfaces or rich animations to engage users. Most of the times a consistent interface with lot of thought in the design (navigation, color schemes, aesthetic) will easily standout.
I have been designing and developing user interfaces for some time now and thought I should share some of my thoughts and experiences in this area.
- Assume Users are mindless - An important concept to remember is to "Program the computer, not the person. …". Offload the "thinking" to the computer as much as possible. Do not provide users with choices and options where they have to make decisions unless absolutely necessary. Read this article by Joel for an example.
- Beware of "It's obvious" syndrome - When you are designing a web site or an application, its so obvious to you what certain UI element or feature does and why its insanely great, that you don't remember that its not obvious to everybody. Recently, while browsing through an application, I went deep into the hierarchy and I wanted to start all over again. I was looking for the home link and could not find it anywhere in the navigation. When I asked the developer about it, he was quick to reply - "Click the logo to go the home page, isn't it obvious?" Yes, it is now but not when I needed it the most.
- Use existing UI metaphors - Look at existing UI metaphors that are well established while designing key elements like navigation, color schemes, lists etc. The biggest advantage is that it provides consistency - in terms, steps and actions that most of us are used to. As an example, most of us are used to the tabbed interface like the one available on the Amazon site. You can take cues from it on how to organize tabs, show the current selected tabs etc in your application. ( Update - Ok. They have changed it since the last time I visited and moved to a left bar navigation. Still, use it to get cues for navigation for your left bar as I think its good as well) .
- Improve Findability - Although search or find is a functional aspect of an application, I believe that the ability to find the stuff you are looking for adds positively to a user's experience and provides confidence and credibility to your site. So keep tuning this functionality to provide the best results.
- Get Usability Testing done - It is always a good idea to get some usability testing done during various phases of the UI design. Most often than not you will discover something which will make you cry out - "Oh, why did i not think about that...?" Believe me - having totally unfamiliar users do a usability testing of your application will provide you with lot of insights. More on usability testing in a future post.
I want to end this post with couple of "Did you know?" kind of facts which I believe add to an emotional aspect to software that is missing in most of the ones we use.
- Mac OS 10. 5 (Leopard) - The login screen shakes when you enter an incorrect password.
- Quicktime - Upon installation, a message box popped up which had the following content
... should I set the default program access to ...