Do you know that feeling where you're getting good, productive work done? The feeling when you glance down at the clock and realize an hour has ticked by without you noticing? Psychologists call this state "flow." It happens when you're able to focus entirely at the task at hand.
Great design supports the user's flow state. But how do you get there? Here are five principles of good, flow-centered UX design. (Please note: These theorems are confirmed by dutiful user testing. By using them as touchstones, developers can be confident that they're designing interactions that enhance the user's flow.)
What follows is a list of flow-enhancing UX principles to follow when building and integrating disparate applications.
1. Preserve user autonomy
Users should have control over their application. Users are the best arbiters of what data they need and what tools they should use. That's because each user's needs will be slightly different. No two people, no two tasks, no two use cases will be exactly the same. The "mental models" of the users are different. By putting the controls in the user's hands, they gain the ability to personalize their workflows in the way that make sense to them.
For example, in the financial space, a person in the front office might use a research platform in a very different way than a person in the equity research department. The front office employee might organize their research by client account and need to sort by their clients' names. By contrast, the equity research employee would want to organize and sort their research by company name. By allowing a platform to sort along either metric, the developer is prioritizing user choice.
***This isn't to say that good software should be inundated with option abundance! It's a balancing act. Other principles serve as a limiter to the unrestrained "choice paralysis" that comes from populating your software with a thousand levers and buttons. See "visual clarity" below.
Key takeaway: User autonomy supports flow because it allows for the many differences in mental models of your users.
2. Prioritize visual clarity
Users should be able to quickly access and parse information. To do their jobs effectively, professionals need to quickly cut through the crush of data to find the information that's relevant to them.
Have you ever been unable to find something in the fridge that's right in front of your face? That's because the refrigerator is a jumble of competing logos and colors. To achieve clarity, you must incorporate principles of visual hierarchy, limit excessive features, and provide the user room to breathe within the interface (i.e., white space). Design that respects clarity breaks through clutter, giving information that people can understand without doing extraneous mental work. [We've written about this before.]
Clarity is also maintained when software provides "modeless feedback." Modeless feedback is a way of presenting information that doesn't break the user out from their current mental state. For example, a dialog box that pops ups at the edge of the screen, displays the information for a few seconds, then fades away doesn't interrupt the user's flow. Embedding information on the screen provides an easier way for humans to take in data without context switching; you can use the edge of the display screen or toolbars to show info about the main work area.
Key takeaway: Visual clarity supports flow because it allows users to easily parse important information.
3. Promote effortless interactions
The user experience should be swift and fluid. If an activity takes three clicks, try to reduce it to two. If an activity takes two clicks, try to reduce it to one.
This isn't to say that UX designers should spend all their time counting clicks. It is not a necessarily useful metric, even so, you’ll need to keep the user's decision process clean and simple. Don't make the user waste their time.
For example, it's all too common to have a user open one window just so they can find a piece of information, copy that information to their clipboard, then open a different window to enter that information into a field. This not only wastes time and effort, but it's prone to error. In reality, this transfer of information can be done much more easily and flawlessly by automation. When interactions are designed intentionally, it creates a reasonable division of labor between the user and the machine.
Key takeaway: Effortless interactions preserve user flow by directly connecting the user to the work they actually need to do.
4. Facilitate scope switching
Users should be able to focus deeply on specific tasks, and refocus when necessary.
Recall what cell phones were like before touch screens: they had a seemingly endless lists of tasks they could perform, but they were all buried in hierarchical menus. Users could access the address book and telephone operations easily enough, but could get frustrated trying to approach the other features embedded deep in the interface.
Luckily, designers took a more considered approach with the modern era of smartphones. When you're on a call, it makes sense for your phone to be in "call mode." When you hang up, it easily shifts back to the mode it was in previously.
To facilitate scope switching, you must create easy paths through your software. A key factor for these pathways is transparency. Interaction mechanics should fade into the background. The user needs to be face to face with their objectives.
Key takeaway: Scope switching promotes flow because it allows a user to move between the different tasks they need to do without breaking their concentration.
5. Anticipate user expectations (and exceed them)
Software should be designed for actual humans to use. Nothing is as disruptive to a user experience as a tool behaving in an unexpected way. Users should be given what they expect and assisted by supportive nudges from the interface. Deciding what nudges to employ requires research, but when done well, creates a sense of loyalty in your users.
Consider a word processor. If you used one of the original word processors, you would have had an experience very much like using an old-fashioned typewriter. Sure, you didn't need to fill it with ink, but the parade of letters across the screen felt much the same. Modern word processors give users "power steering" to directly manipulate their text. They can undo mistakes with a quick keyboard shortcut. They can scan through the version history of their document. Their work is autosaved. These features help users breathe a sigh of relief; "Oh good, everything is fine!"
Key takeaway: Anticipating the expectations of your users promotes flow because thoughtful software accommodates the needs of actual users.
In Summary: The Principle of Principles = Respect
UX designers are successful when they have a thorough understanding of the users they're designing for. Software should anticipate and accommodate the user's needs. At its core, creating a good user experience is having respect for the user.
The journey to perfect the user’s experience is always ongoing. Consistent with good software development practices, is the need for continuous improvement. Test and iterate, revisit and revise.
Interested in learning how ChartIQ applied these principles to our own product? Read more about applying the core principles of great UX design to our integration platform, Finsemble.