A List Apart


Designing For Flow

Designing For Flow

In web design, when we think about flow we usually think about “task flows” or “flow charts” but there’s another type of flow that we should keep in mind. It’s that feeling of complete absorption when you’re engaged in something you love to do without being disrupted by anxiety or boredom caused by tasks that are confusing, repetitive or overly taxing.

Article Continues Below

Flow, as a mental state, was first proposed by psychology professor Mihaly Csikszentmihalyi and is characterized by a distorted sense of time, a lack of self-consciousness, and complete engagement in the task at hand. Software engineers might feel it when they’re writing code, gamers might feel it when playing Guitar Hero III, Christopher Cross felt it when he went sailing. For designers, it’s exactly the feeling we hope to promote in the people who use our sites.

How do we create sites that inspire that feeling? Well, it starts with a site that solves a challenging problem and is complex enough to require a certain amount of learning by the user. The goal should not necessarily be to create a simple site. The goal should be to create a site that feels painless to use no matter how complex it really is. But wait, you might be thinking, hasn’t there been a simplicity movement in web design over the last few years? Yes, but there’s a learning curve for any site that seeks to solve a complex problem. We shouldn’t confuse simplicity with a desire to avoid needless complexity.

The way to make the complex feel painless is to design with flow in mind. By designing a site that is fluid and intuitive and inspires flow, you help new users get up-to-speed more quickly, reduce the chance that existing users leave your site to switch to another and create users that evangelize your site to other people. That results in more users, increased activity, and greater awareness of your site.

The following four rules are based on Csikszentmihalyi’s Flow: The Psychology of Optimal Experience (more info) and are meant to help nurture the flow experience in users.

1. Set clear goals

The first step in designing for flow is to set clear goals for your users. It’s important to create both an overarching goal as well as smaller, incremental goals. Goals help users understand where they’re going and each step they’ll take to get there.

Marketing copy is often low on the list of priorities, but it can be key to helping users form their goals. When describing their products on their company homepage, 37signals avoids the typical marketing jargon in favor of down-to-earth language. Campfire’s description: “It’s like instant messaging, but optimized for groups. Especially great for remote teams.” These descriptions help visitors understand product differentiations and how each might be used in real-world situations.

On personal organization tool Backpack, 37signals provides a fantastic set of examples to help users understand the specific uses for the application. They show how one might use Backpack to plan a wedding, comparison shop or organize employee searches. For users who have a difficult time figuring out what they’re supposed to do with a site and who find a list of features meaningless, these examples can be invaluable in setting goals. Realistic examples help users understand how they might use the site and inspire them to achieve what they’ve visualized.

2. Provide immediate feedback

Once users understand what they can achieve via the site, they’ll want to start making progress towards realizing their goals. It’s the job of the site to provide the necessary guidance so that the user feels they are actively achieving them.

Wufoo, an application that helps people build forms and collect information, does an excellent job of guiding users through form creation. Their wizard-style interface provides instantaneous feedback by showing a live preview of the user’s form as they create it.  By doing so, they’ve removed the potential anxiety of not knowing what the end product will look like. Users can see that the tasks they are performing are continuously moving them toward their goals.

Flickr’s Flash-based image upload tool is another good example of providing users with immediate feedback. File upload on the web has always been a less-than-ideal user experience. Typically, a user selects a file using a file upload form control, submits the form and waits, sometimes for quite a long time, for some sort of confirmation screen. Flickr has improved upon that process by allowing users to see the progress of each image. Users no longer need to fear a long wait just to see an error screen. They can watch the progress bar and know that photos are being uploaded.

3. Maximize efficiency

Once a user becomes comfortable with a site, they’ll want to start using it more efficiently. When they’re experiencing flow, users want to work more quickly and want the site to feel more responsive.

Google Reader has several features that make it feel fast and effortless. Perhaps the best example is the “endless scroll.” It eliminates the need for pagination by fetching new articles as you scroll down the page so that you can read all the articles in a tag or feed without ever clicking to go to a new page. The user never has to disrupt their reading by clicking a link to the next page.

Another way that Google Reader ensures efficiency is through the email feature which, when clicked, appears directly below the article and allows you to send a story to a friend without losing your place. Google avoids causing a disruption in flow by reducing the mental cost of taking an action, thereby promoting more engaged use of the site.

Backpack provides a great example of efficiency with its options for reminders. Rather than selecting a day, a month, a year, an hour, and a minute, they’ve provided some extremely useful shortcuts to let you select options like “later today” or “in two weeks”. They’ve avoided forcing an unnecessarily complex interface on their users because they’ve thought beyond how the data goes into the database. They’ve removing the friction that would be created by forcing users to think about specific days and times, allowing them to choose an option that feels more natural.

4. Allow for discovery

Once a user has begun to work with maximum efficiency, there’s a chance that they’ll feel less engaged and grow bored with their experience on the site. In order to avoid this, you should make content and features available for discovery.

For content sites, this may be as simple as displaying newly created content in the hopes that it will catch the user’s eye. The website of The New York Times includes a “Most Popular” module that displays the most emailed, most blogged and most searched stories. Even though these aren’t based on information of individual readers, these are extremely relevant to most users since they pinpoint the stories that grab the attention of the average person.

Ebay makes features discoverable by placing them in the context in which users will be most likely to try them out. For example, when looking at an item on Ebay, underneath the link to “Watch this item” are links to mobile or IM alerts. The people at Ebay know that alerts lead to more active participation, so they promote them where users will be most interested in them. This kind of discovery allows users to continuously learn new things and find new ways to interact with a site.

Go with the flow

Flow is a powerful psychological experience. Designing for flow requires an enlargement of empathy and a deepening of emotional and intellectual subtlety. It is the difference between creating chapter markers and telling a story.

A site designed for flow must appeal to new users and power users alike. It must stretch both sets of users in a way they find enjoyable rather than daunting. Despite the challenges, the rewards of designing for flow are a user base that is loyal and enthusiastic—one that will evangelize your site to others—and a more profound sense of engagement between you and the people for whom you design.

37 Reader Comments

Load Comments