I recently had a customer tell me, “Don’t worry about polish — this is an app for engineers, and they don’t need polish.” That’s true to an extent. But, there’s more than one kind of polish, and some kinds of polish are more important for app usability than others.
Fonts, Colors, and Borders
On one hand, we’ve got choices like fonts and colors. These are tremendously important because this is how your application communicates information.
Fonts contribute to readability and can reinforce your brand. Colors can also reflect your brand and can indicate information such as green for good or red for bad. Borders and physical layout organize information and help the user find what they need quickly by establishing groups and hierarchy.
That stuff is all very important. But these aren’t the only considerations. Here are a few examples of details that often would be classed as “polish” but that are important for app usability.
Mouseovers and Hover States
This is one item I really try to nail every time. Having the mouse cursor and user control change when you hover over an item helps the user understand where they can interact with the system.
Here’s an example from an app I’ve been working on recently: A graph has a divider on it that can be dragged. It’s necessarily thin so that it won’t occlude too much of the chart, but that also made it hard to grab. Adding a hover state made it much easier to click and drag because you knew when you were in the right spot.
The discoverability that hover states provide can be invaluable.
This obviously fails on a touchscreen as there aren’t any hover states, but that doesn’t make it less important. The user still should be able to tell what’s interactive (e.g. by color, border, etc.) even if we don’t have our full complement of tools to do it.
Busy and Working Indicators
I hate sitting there watching the app and wondering, “Did I actually click that button? Or is it not doing anything?” Or I might know a process started while not being able to tell the difference between, “It’s finished but there’s nothing new to show” and, “It has failed, and what you’re seeing is an old version.”
Seeing the app change state significantly improves its perceived responsiveness and helps the user understand what to do next.
Radiating Other Application States
The busy indicators really end up just being a special case of clearly radiating internal state. For example, if I’m viewing a report for a customer, it should say what customer the report is for. I’ve found that’s a surprisingly easy thing to forget: my customers often will focus on what columns show up in the report instead of how we radiate what filters were applied to the report.
Why It Matters
I wanted to call special attention to these details because customers rarely ask for them. It’s easy to say, “Isn’t it nice to help the user easily understand when the app has errored out?” But, I find it’s uncommon for the customer to notice the problem and suggest that as the solution.
Where to Focus
Obviously, aesthetics and visual design are still important, and interactive affordances aren’t necessary for every app. Here are some criteria you might use to determine where to focus:
- If you’re building a consumer application where users generally choose for themselves whether to use your app or a competitor, then pure aesthetic concerns are more important. The impression your app makes will have an impact on purchase decisions.
- If you’re building an enterprise app where the end-user doesn’t make the call on buying it or not, or if it’s for heavily trained users, then you can focus less on the appearance.
- In both cases, building affordances to help users navigate the app and understand what state it’s in is important: this will reduce uncertainty and frustration.
Whatever you do, make it a conscious decision where to focus. Bring it up with your customer and talk about it. Identify how parts of your application could be enhanced and which bucket each falls into. Making an intentional decision will deliver a more solid product and increase app usability.