UX: User experience. The total experience of using an application
UI: User interface. The web page or graphical interface used by the user
KISS: Keep it simple, stupid. An overall design concept
RWD: Responsive Web Design (an approach to web design allowing web pages to render in many different devices)
Application Hierarchy
- 1.
Functionality: Software does what it should.
- 2.
Usefulness: Is the software easy to use?
- 3.
Efficiency: Can the user work efficiently?
- 4.
Magicalness: Is the experience magical?
You can’t focus on being usable if your software is not functional. You can’t focus on being efficient if your software is not usable.
After you have mastered all the basics (functionality, usability, and efficiency), only then can you attempt to make your UI magical.
Consider Your Audience
It’s always important to consider the audience for your software. You should get to know them as much as possible.
Those of you familiar with Harry Potter (or magic, in general) will recognize the words wizard/witch and muggle . In Potter’s world, a squib is someone who’s aware of magic but not able to practice it, and a muggle is a normal person who’s unaware of magic.
Beginning user: Muggle
Proficient user: Squib
Highly proficient user: Wizard/witch
For example, if you design only for witches and wizards, the muggles will feel lost. If you design only for muggles, the witches and wizards will feel the software is incomplete and too simple.
Choice Is an Illusion
Limit choices.
Prepare for every possible choice.
Tailor choices for your audience.
Validate user input, making sure it meets expectations.
You will often have to decide whether to give your user a choice or make the choice for them.
The easy way (for you) is always to let the user decide, but the better way is generally to give the user one less choice. This will make your software simpler and, therefore, easier to use.
Direction
Work instinctively—instinct is your friend. Motion is a subtle and effective way of getting the user’s attention. However, too much motion is a distraction, so it should be kept to a minimum.
Another instinctual visual is the human face. Faces are noticed first. This is why you always see faces on the left-hand side of text (in languages that read from left to right). The eye is drawn first to the face and then to the accompanying text.
Skeuomorphism
Skeuomorph is something from real life that is imitated in software.
Simulating real-life features, such as edges, bevels, and buttons, can be useful for communicating affordability (what the user can do with something). However, you have to get it 100% right, if you’re simulating a complete object (such as a book). This is why skeuomorphism is generally a bad idea. Imitating something from the real world comes across as fake, if it is not done perfectly.
You could take the opposite approach and attempt to remove all metaphor. The UI can be very flat and edgeless. However, you can take this concept too far. For example, what is clickable should still be obvious.
Context Is Important
Three stars with no context could mean anything. However, given context (3/5 stars), what is meant becomes obvious.
Context is also important for navigation. It must be obvious where the user is in your software at all times and how to navigate somewhere else. Otherwise, your users will feel lost, which is not a comfortable feeling.
A related concept is to avoid “modes.” The more ways there are to interact with the software, the more complex it will seem.
KISS
Above all, keep things simple—simple for the user. For example, in general, there should always be one way to do something in the software. Also, as a general rule, your UI should follow the conventions set by existing software/web sites (e.g., always underline links).
As your software grows, you will constantly have to make choices about new UI features. In addition to other considerations, you should also contemplate how they can be made simpler.
You Are Not the User
Unless you are building software only for yourself, the overwhelming probability is that your users are very different from you. For this reason, you must not only try to think like your user but also really get to know him or her. This means ideally that you sit down and watch your users operate the software.
Likewise, in a production system you should monitor what your users are doing. Are they using that new feature? Are they doing something unexpected. Metrics can be helpful to analyze your users’ behavior.
Summary
Your UI should be functional, usable, and efficient, in that order.
Consider who your user is during all phases of design.
Limit choices and handle all conditions.
Instinct is your friend, but don’t imitate reality.
Keep things simple for users and listen to them.
For more about usability, I highly recommend Steve Krug’s Don’t Make Me Think (New Riders, 2014).