Recently I was asked to speak on two occasions on user experience (UX) and usability to groups of software developers not very familiar with the concepts. So I started thinking about what would be the best advice to give to somebody who has not thought much about the topic. It would need to be something they could immediately put into action and more importantly they could relate with so that they understood the importance. (As you may know there are many developers out there that still think that not understanding how software works is solely the users’ problem).
So to start out with I asked them to consider this (borrowing from my hero Kathy Sierra here):
The user is not using your software because he is fascinated by it. He is trying to achieve something. His success is dependent on him being able to maneuver through your interface.
Therefore our goal as software developers is that at any point in time the users know:
- where they are
- how they got there
- how they can proceed
The following tips help you achieve this goal.
1st tip: Don’t expect your users to read
When you find that you need to write an explanation about some part of your user interface you need to fix the interface. The explanation is a cop out to fixing the real issue and it doesn’t work
Any explanation that you write is not going to be read because when we move through an interface we’re skimming (not reading with focused attention). Which means that we only notice the things we are looking for and things that stand out (such as colorful large buttons that we are expecting to bring us to the next step).
Note: This applies also to help documentation.
2nd tip: Make a decision for your user
Making a decision is hard and it is really difficult to keep more than 3-4 options in mind at a time. If there are more options a lot of work is needed to narrow them down. Which means that we just don’t and move on (to your competitor!). If you have many options, present those that are most important to you (37signals do a great job here where there are 5 options but only 3 presented in focus).
This comes with responsibility. Some use this to trick the users. The thing is that unmaking a decision (made by the developer) is also a decision (made by the user). That’s why the newsletter is selected by default in many subscription forms. Use this with respect for the user.
This tip also applies to your product development. If you have everything configurable in your software it will become cluttered and complex. Select the defaults and feel free to dig the configuration down into the menu system. The thing is, most people don’t like to be able to configure everything. It just us, the nerdy types, that like that. Design the interface for the most common cases and hide the special cases. See also Lisa Reichelt’s post on Why most UX is shite.
3rd tip: Don’t make your user remember
Computers are just much better at remembering than people, we function on recognition. Which explains the importance of the GUI (in contrast to command line) in making computers household objects. If the user selected something in step 2, don’t make her recall it in step 4. Just display it.
4th tip: Users make mistakes
It doesn’t mean they are stupid or sloppy. It means they are not sure how this thing you have made works. Deal with it by allowing undo or at least enforcing a confirmation before execution. Allow people to get back to where they were before they stumbled off the straight and narrow.
5th tip. Listen but don’t obey
This is very important. Your users pay your paycheck so you need to listen to them. But note: They are not technical and they are not interface designers. They may not possess the overall level picture that you have from speaking with many users with different needs. Therefore it is your responsibility to find the best solution. Listen carefully, what they are saying, asking, pleading for you to fix may only be the symptom of what is actually wrong. Think about why this is important to them, what are they doing and what are they trying to achieve. (Thx for the improvement Már 🙂 )
6th tip. People don’t like change
Remember the last big Facebook change and how people reacted? Now think if you would show up at work and somebody had completely rearranged your workstation. Sprayed your desk pink. Added stickers with unicorns and butterflies on the edges of your monitor. Even if it is better you’re going to feel out of control and that’s unsettling.
When you’ve worked really hard on the next version of your software it is very frustrating to get beat up about it when you deliver it. But think about it from the point of view of the user. He has managed to build up skill which you have now all but annulled. He is very busy doing his work and now you’re slowing him down. Try to involve your users. Even just to give them a heads up of what is going to happen. A big overhaul of Amazon prompted them to allow users to see the new version a few weeks before it was launched. Maybe they have comments. Maybe not. But it will at least make them feel less out of control.
I’m sure there are more tips useful for those getting started. Leave a comment if you have an idea for a tip or if you have a comment on any of those above.