Have you ever noticed that most, if not all, ‘next’ and ‘confirmation’ buttons of programs and wizards are usually located on the right-side area of the user interface?
There is a reason for that.
A good interface design starts with understanding your user. The better you understand your user the better your interface design, and the easier it is for your user to reach his goal. Since the purpose of all applications is different, the design differs per application. Likewise, users are all different, however, people. In general, all behave predictably. Support the following user behaviors and your application is more likely to be a success than applications that don’t.
A user should get the feeling that he or she can explore your application without making any changes that have disastrous consequences. Imagine accidentally deleting an account from an accounting package and being unable to reverse the action. Undo support (Ctrl/Cmd-Z) is a good example of this that is supported by plenty of applications. Let your users roam free in your software and make sure that they can undo what they changed and also that they can find their way back using, for instance, the back button in the browser.
Personally, I feel that instant gratification is something that your application can’t do without. Users should accomplish their goal as soon as they are logged into your application. Microsoft understands the importance of this heuristic extremely well. Visual Studio is full of instant application templates, but also you can style PowerPoint presentations or Word documents completely by just clicking a single button. Expensive coffeemakers that use a capsule and the press of a button to make your favorite flavor can’t keep up with demand. Get your users work done in a single click or less, and he will never look for another application.
Users change their mind about what they want to do. Especially on my mobile phone this happens all the time to me. I may be in the middle of reading an email, and I get a text that I need to answer right away. When I get back to my email application I expect it to be on the same line of the email I was reading before. Likewise, if I am completing a wizard in some application and I go to a different page of the application to double check my account number, I expect the data still to be there. If the data is gone, I will probably find another application that does work.
Users are used to stroking Ctrl/Cmd-C, Ctrl/Cmd-V. Good for developers that the OS or the browser will support these key combinations—as you would not get away with an application that does not support these calls. Similarly, you need to be consistent in your application – you should be able to log out from the top-right and don’t move it to the bottom left. Don’t change what users are used to.
The term satisficing is a combination of satisfying and sufficing and was coined back in 1956 by a social scientist. People don’t like to think more than they have to, and people are willing to accept good enough instead of best if learning all the alternatives cost a lot of time. Make sure that you calls-to-action for your users goals are the obvious options for your user. Use clever colors to guide your user, and keep labels short and quick to read. Give directions in the interface for the user to accomplish their goals: Type here, click here.
Back in the mid-nineties registering for a website was an utter nightmare. Plenty of websites required you to fill out your address information, and the fields were actually mandatory! Only ask for what your system needs right now to get by. When users explore the features that require more data, users understand why they have to enter this data, and are happy to provide this.
Now that everyone is equipped with a mobile phone this becomes more important than ever. You check your favorite application while you are waiting for the bus, and put your phone away as soon as you get into the bus. Make sure your application or software supports this behavior, by making it easy to open, quickly to navigate and make it respond fast. Don’t ask the user to login over and over again.
The best example of spatial memory is the desktop on your phone or your windows desktop. You use this to organize icons to quickly access your latest or unfinished word documents, and applications that you use often. Users remember where they store things, not what they are called. In line with habituation, it is important to be consistent and that similar functionality is always found in a similar space in your application as well. Avoid populating menus dynamically to make sure that the important items are in the top or in the bottom of the menu—as these are spaces users remember easier than the middle of the menu.
When I decide to leave work, I normally just hibernate my laptop. When it comes out of hibernation, I expect the files to be exactly where I left it. This is a good example of prospective memory. Users may remind themselves of doing things because they place it on a certain space in the desktop. Flag an email as important to make sure to answer it next time. The important thing is that none if these things are designed to remind the user, but the key here is to design for flexibility.
Repeating the same boring task multiple times is daunting and is not something your users are willing to do. Support macro’s where possible or builds the functionality for your users so it becomes easy to repeat the same steps.
Users have high demands from your system and more and more users change to the next field in your form by pressing the TAB button. Make sure that the tab order of your forms makes sense and that the standard Ctrl/Cmd-S features work.
We get fed so much information in a day that our brains are hot-wired to take shortcuts rather than evaluating all decisions. Marketers know how to use these tricks wisely to influence us to buy the product they want us to buy. One of these shortcuts is listening to other people’s advice. People are social, the more opinions the better—a million people can’t be all wrong, can they? If your application in any way can have a social component, make sure to support this. Make sure your application can be liked, shared, tweeted about and be posted with no effort at all.