10 Principles of User-Centered Design
User centered design is like working out — easy to forget (avoid?) at first, but once you make it a habit, it’s better for everyone. When working out, you feel better and are in a better mood, which helps you and the people around you. When designing in a user-centered way, you help those with different ability levels, which often ends up helping others.
Think about closed captioning. That was created for people with hearing impairments, but it helps all of us! Want to binge watch The Great British Baking Show late into the night without waking your partner?? Closed captioning helps you do that!
I’ll be honest, though. The term “user-centered design” sounds redundant to me. I know it’s a hot, tech buzzword, but if you’re designing a product, you’re creating something for someone else to use, thus inherently considering a user. Right??? Maybe. But maybe not.
As with many obvious concepts, such as “health is wealth,” key principles are often forgotten, or, um, willfully ignored. Exercising is hard and vegetables are gross. I get it.
With digital design, it’s just as easy to focus on anything else but boring “principles” and time-consuming user testing. There are pixels to push! Meetings to attend! But, without diligently considering the user at all points, you can quickly end up with a product that’s pretty to look at and makes zero sense. This is why designers should have a set of user-centered design principles to review every now and then.
1. Design for the users and their goals
Always keep in mind the characteristics of the user population, their real-world tasks, goals, and their working environment.
An example of an app that lost track of its user’s real world task is the Pocket Geiger Counter. It’s an open, non-profit project that crowdsources radiation levels in Fukushima, Japan. It presents all the data in the app in numbers, graphs, and maps. From the sound of it, you might think “how useful!” but in reality, what most users want to know is “is area X safe?”
This means that the app should factor in what radiation levels are safe or dangerous, and then answer that as clearly as possible. This can be done with color, such as a green, for safe, and red for dangerous, or icons, text, or a combination of those.
2. Consistency is Key
Make your designs as consistent as possible to minimize the learning curve for users. Often times this means designing to be consistent with already existing components of an app, website, or brand. Use style guides if they exist, and if they don’t, make them!
3. Use Language and Write UX Copy that is Easy to Understand
Don’t use the design copy as a chance to sound “smart”. This doesn’t mean dumb it down, though. It means that the language used should follow the natural sequence of tasks the user will go through. Don’t present more information than is necessary for user to complete the task.
As Albert Einstein said, “If you can’t explain it simply, you don’t understand it well enough.” Know what the purpose of every interaction is, and then make that crystal clear.
4. Minimize Mental Effort by the User
Users should be able to use the tool without consciously thinking about how to use it. To do this, simplify frequent tasks as much as possible. Make instructions obvious or easily retrievable and present relevant help text when necessary.
5. Provide Adequate Feedback
Users need to be confident that their action was successful, which is usually evident with a distinct change in appearance. If completing a task takes more than a second, you need to show a progress or a working indicator (such as a loading wheel) to give the user confidence that their device is still working and that the system just takes a while.
Users should receive indication that they have operated a control successfully but not much more than that. For example, after pressing a button, it should change color or appear temporarily pressed in. You don’t need to change the appearance, show up a pop up that says “you did it!” AND present a loading wheel. That’s an extreme example of going too far, but you get the point.
6. Provide Adequate Navigation
Provide enough information to let users know where they are at all times. This can be done with a combination of assigning titles to windows, using page numbers, and presenting scroll bars. In mobile environments where space is at a premium, make sure the navigation bar is always easily accessible. Other mechanisms, such as a navigation map, overview, or a history of where the user has been, aka breadcrumbs, can be used.
Create clear and easy routes between screens that the users will need for particular tasks. Users also often select system functions on accident, and so they should be provided with a clearly marked emergency exits, such as a cancel or undo button.
7. Give the User Control
The user should be able to select the information they need in a sequence that is convenient to support each individual task. The system should provide the fewest constraints possible.
8. Present Information Clearly
Present on-screen information so that the user can discriminate between different items and groups of data. To do this, you can use spacing, boxes, and visual coding techniques. But, don’t overwhelm user with more information than is necessary to perform a task. Present information in ways to increase learnability.
It is important to remember that data does not inherently provide information. Presenting too much data to a user can cause anxiety and scare them away, in which case they gained no information from the data presented.
9. Help Your Users
Users should feel as though an invisible guide is supporting them through their tasks. A good, well-designed system should be self-explanatory, so that they can be used without any help of documentation. Again, this is where using consistent design patterns and simple language comes into play.
10. Reduce Errors
You reduce errors by effectively guiding users down the appropriate path to complete their desired task. User responses should be constrained in order to reduce error, but not so much so that it would limit their reasonable choice to perform their tasks. The system should validate data entries as near to the point of input as possible. Error messages should be presented with simple language, avoiding the use of codes, indicate the precise problem, possible solutions, and use language that avoids blaming the user.
As someone with a long-seated interest in human behavior, I find studying these principles fascinating. Upon reading, they seem so simple and so inherent. But, when in the weeds of designing, it is quite easy to end up accidentally using complex terminology in the UX copy and adding too much visual clutter in the UI. I, myself, have definitely done as much.
That being said, this list helps me avoid common traps, and can hopefully help you, too!