Friction. The invisible bogeyman that haunts software apps. UX friction is anything that hinders a user from achieving their desired outcome in your software. It can be anything. A hard-to-find button. A poorly named section. A confusing widget. UX friction can cost you users and revenue, impacting long-term retention and churn rates.
When designing user flows, it is important to consider user friction at the start. Sometimes, a high number of steps can cause friction. Sometimes friction is unintentional—an error occurs that prevents a user from completing a journey. These hiccups can add up, leading to a frustrating user experience; occasionally, a single point of friction can sabotage product adoption altogether.
There are various types of user friction that impact how a user interacts with your product. These different types of friction typically mandate different strategies to tackle them.
Interaction friction is any aspect of the UI that prevents the user from achieving what they want to achieve. Examples of interaction friction is a cumbersome form flow to achieve end results or far apart components mandating too much mouse movement. Interaction friction includes aspects of your product that are slow or buggy as they impair user journeys. Interaction friction is often tackled by revisiting the design principles of the product.
Cognitive friction is any excess mental effort that a user needs to exert to accomplish a task. Cognitive friction happens when an interface is busy and difficult to decipher or simply unintuitive. The more your users need to wrack their brains to use your product, the bigger impact on the user that cognitive friction has.
Similar to cognitive friction, emotional friction is when someone develops a negative emotion while using your product, preventing them from achieving the desired outcome. Emotional friction happens when your users perceive your product as not being user-friendly. Emotional friction doesn’t need to be related to a specific feature or interface—if your users overall feel a negative attitude towards your product, even the most simple, straightforward tasks will be sabotaged by emotional friction.
While lots of cognitive friction can typically lead to emotional friction, it isn’t the only way emotional friction is created. Bugs, too, can cause emotional friction. Or mismatched perceptions over save state. If a user feels like they need to fill out a form over and over or a product isn’t responding as they expect it to, they may develop strong emotional friction. Personally, I’ve felt this way every time I open Quickbooks 😅.
Given that friction happens in different ways in different places to different types of users, tackling friction is less about following a step-by-step process to build a hypothetically frictionless experience and more about general guidelines to follow. Building a good product that people want to adopt is all about the balance of contradictions—something that is simultaneously powerful but simple, informed but not wordy.
Let’s dive deeply into a comprehensive list of guidelines to help you create a frictionless—or at least a near-frictionless—user experience.
If you ever have a complex process like a long-form or a multi-part widget, break it up into chunks to help users process less information per step. The less focus a user needs to do, the easier it’ll be for them. However, breaking things into chunks can be frustrating if users start to perceive rather simple interactions as long, arduous processes. Don’t make users feel that they are doing homework, but try to ensure complexity is reduced into parts.
As funny as it sounds, don’t make users think. Your product or service is meant to provide some sort of value for your users, not act as an assignment. Strive to create an application that feels simple and easy to use without any mental drain. You’ll sharply reduce cognitive and emotional friction by simplifying your product and communicating what does what. Things like tooltips can dramatically reduce confusion and hand-holding users towards their destination. CommandBar customers utilize search to inform users of relevant page actions and guide them through the product.
However, it’s important not to infantilize your users. Too much instruction can again feel like homework. It’s important that whatever you do to minimize cognitive overload also doesn’t prevent users from achieving their desired outcomes in a timely manner.
Ensure your users feel like your product does and will always acknowledge interactions. Show loading states while your servers are working, confirm inputs as valid, and even use animations to indicate hover states. Acknowledgments are small and provide little impact individually, but collectively, it dramatically improves the user experience.
Ensure your users understand what is the next step while they are completing a multi-step flow with a tool like a checklist. Don’t expect users to automatically know what to do next or where to find a tucked-away button. Ensure flows feel streamlined and easy to understand the steps the user is on.
Optimize the performance of your application to keep things snappy. A fast, responsive experience will reduce emotional friction—even if users feel your app is tedious, they’ll feel less frustration on a step-by-step basis. Paul Buchheit, the Gmail creator, once famously stated that interactions under 100ms are seen as instantaneous to users. While 100ms isn’t a hard or fast rule, a snappy app will pay dividends by spurring happy users.
Users spend more time on other applications than your own—it’s important to re-utilize UI patterns, not re-invent the wheel. Users prefer applications that are easy to use, and not necessarily flashy and fancy looking. While you can definitely create your own brand and feel, the general UI structure of your application should look like other applications; otherwise, users will spend too long understanding your app than using it.
This same lesson is held firmly at CommandBar. One of the fundamental tenets of CommandBar’s design is to extend flexibility to customize the aesthetic of the CommandBar, but keep and force the fundamental design principles that make action-based search bars familiar and powerful.
Use icons, labels, and tooltips to ensure users understand what features do what and where to find certain features in your application. It’s frustrating for users to do something and get a result different from what they expected. By using tooltips and labels, users will have a better understanding of how a product works from the get-go.
Keep UI patterns across your app consistent. If users feel certain parts of your application are different from other parts of your application, they’ll start to compare the relative efficiencies of each segment. Instead, create an application that feels like a seamless, united experience throughout.
Users don’t typically change defaults. Keep defaults to be the most common or recommended action, not necessarily the neutral option. This will lead to fewer users changing their responses after realizing they selected something erroneously.
When your application errors, give users an informative message. Help them decipher between mistakes of their own and server errors that require a patch. If the error message was a server message, give users recommendations of possible alternative ways to achieve their desired outcome. Regardless, ensure that users deeply understand that there is an error, and don’t make users guess in the dark what to do.
Creating friction comes with creating apps. By investigating how your product might be introducing friction and implementing remedies (like in-app guidance), you can dramatically improve your product for each user. With less and less interactive, cognitive, and emotional friction, you can expect less churn and better retention.