Embracing the Curve
M. Jackson Wilkinson, Former Viget
Note, this post is also posted on Jackson's blog. Read the original post.
As web application designers, we often work to design interfaces to be as simple as possible, focusing on the new, uninitiated user who wouldn’t necessarily be interested in using a sophisticated interface. On the other hand, developers, enterprise, and other experienced users appreciate those sophisticated interfaces for the power they can give to the user.
It’s a common situation to outgrow a web application. You sign up for a tool that appears to be easy to use, and it is. You adopt it as part of your toolkit or workflow, and continue to invest your time and interest into it. Over time, though, you begin to feel the limitations of the simple tool. Maybe you were using Basecamp and are finding that it’s not the best way to task other people on a project. Perhaps you’re getting frustrated by Twitter’s lack of privacy or group options.
As a designer, what’s the right way to go? Do you design the simple interface for the new user, or the sophisticated interface to offer power to the more advanced user? In creating simple web interfaces, we are often designing at the expense of power, and that power can be the key that makes software truly invaluable for users in the long term.
It’s a false dichotomy. Having a simple interface that new visitors are likely to grasp does not mean that more advanced users need to be left out of the picture, and the best web apps understand how to embrace the learning, experience, and usage curves to create a product that is loved by brand new users and experienced ones alike.
To look to the real experts on this topic, we might turn to video games. I’m not a huge gamer myself, but it’s clear that in this age of never-ending MMORPGs, embracing the curve is a necessity rather than a nicety. Consider the two screenshots from World of Warcraft below, one from a new player, and the latter from one more experienced (level 80, whatever that means):
We can find this kind of design on the web, too. Geni, a well-designed genealogy site, has an interface that scales from an incredibly simple initial screen (which also serves as a de-facto signup screen), to a family tree consisting of hundreds of people.
Method 1: Interface Expansion
One method is to reveal and expose additional options and interface elements to users as they grow accustomed to the app. This is what we see in the World of Warcraft example above: the new user has a relatively straight-forward gaming interface, with just a couple abilities surfaced to the interface. As the player levels up and gains new abilities and tools, the interface increases in complexity.
There are loads of opportunities for this type of expansion on the web. A bookmarking app doesn’t need advanced features for manually organizing your bookmarks until you have a few in the system. Interfaces for adding loads of metadata can be frightening for a new user, so maybe more metadata is requested for more seasoned users.
It’s common for an internal discussion about an interface to have a thread dealing with the fact that a simple interface may be great for managing a dozen items, but breaks down for hundreds of items that may be accumulated over time. Why not switch to the more advanced interface once the user passes that threshold, rather than exposing them to a sophisticated interface right away?
Method 2: Interface Prioritization
Flickr is a great tool for both amateur point-and-shoot photographers as well as the semi-pro with dozens of lenses for her D300 body. These are two audiences that have wildly different needs when it comes to photo management and editing, and Flickr manages to do a solid job of handling both in a way that doesn’t alienate either group. Not only that, but they enable some nice social features in the process that don’t obscure the art of the photo.
They do this by having an interface that focuses on the simple, but still allows the more sophisticated. Most amateur users will be happy to upload their photos, comment on them, and casually browse sets and the metadata. More advanced users or precocious amateurs will be looking to the relatively subtle toolbar above each photo to organize, edit, share, or view other sizes.
By prioritizing the simple tools for the mass audience and providing subtler entrances for tools built for more advanced users, both can be served quite effectively. Subtlety is the key here, though, since the advanced tools can have an overwhelming effect on beginning users if their interfaces overshadow the simpler interfaces.
Method 3: Graduated Social Influence
It’s of paramount importance in social apps and communities to ensure that the most dedicated users don’t tire, yet often these apps don’t need additional functionality to be enabled for these users. What then?
Instead of thinking of advanced ways to interact, consider advancing a user’s social influence by gradually enabling them to take charge of aspects of the community. Allow them to moderate comments and posts, to recategorize items, to censure abusive users, or to feature content prominently.
A few tips for being successful at embracing the curve:
- Time is your biggest ally. Because the curve is often a function of time, you don’t need to release advanced features at the same time you release basic features. Instead, bring in more advanced options as your users have begun to get familiar with the basic aspects of the application. This can benefit your project launch date, your initial budget, and the velocity of your development.
- It’s not always a two-side issue. Sometimes you need steps between beginner and advanced, especially if advanced is very advanced. Consider handling a steep curve by making it a staircase to the top.
- It’s no excuse for editing. Just because you can have more sophisticated tools in an interface doesn’t always mean you should. Continue to balance the needs of simplicity versus flexibility and power and make smart choices in the interests of your users.
- This affects interface testing. Yes, this means you can’t just test your advanced features with new random users, since advanced features are surfaced in the context of experience. I’ll write a bit more about how testing doesn’t always reflect the truth later, but make sure you’re testing users within the proper context in order to get relevant results, especially on the more advanced pieces.