I’m very excited to talk about a technique that we’ve started using at LayerVault. We call it Progressive Reduction.
The principles mentioned in our Flat Design Era post are the consequence of a culture of reduction—an important place to start. Without the right product culture, implementing the ideas in this post won’t help you much.
The idea behind Progressive Reduction is simple: Usability is a moving target. A user’s understanding of your application improves over time and your application’s interface should adapt to your user.
At the outset, the designer sets a bar for how much hand-holding he’s willing to do. Big icons? Big text? Small text? Labels? No labels? Some combination?
There’s always the desire to design for the power user. My dream of the perfect interface is one that requires no hand-holding and has been cut down to absolute minimum. Admittedly, we’ve occasionally made the mistake of reducing things too far.
As designers, the longer we live with a product, the greater our bias shifts towards the professional user. Alternatively, blindly applying basic usability heuristics results in a bias towards new users. The mistake isn’t biasing your UI towards one type of user, it’s failing to realize that your user’s bias is changing.
How does one guide a new user from on-boarding, to low proficiency, to high proficiency? With progressive reduction, the UI adapts to the user’s proficiency.
For most of our major features, we track your usage. As you use the feature more, we start to reduce the hand-holding. You’ve learned what the icon means and you know where the button is. In practice, this can manifest itself in a few ways.
Signposting has been a small pain point for us. Users are introduced to the concept of Signposting during on-boarding, but it’s not clear where the functionality is once you decide you’d like to try it.
Within LayerVault, all of your revisions are private. Signposts allow you to pluck revisions from a design’s timeline and expose them to a client or teammate. It’s incredibly useful but also slightly ambiguous at first.
Our Signposting button starts out as a large icon with a label. When you’ve demonstrated proficiency, we remove the label. After you’ve become a total pro, we de-emphasize the button altogether. Other examples include variations on labels, size, contrast, and color.
LayerVault creates a proficiency profile for every user. We do so by providing positive forces to get you into the right process, and when you’re an expert, we get out of your way. At the moment it’s limited, but you can imagine how useful having a report card for each user might be.
This, however, isn’t the whole picture.
Almost as important as the concept of reduction is something we call “Experience Decay.” An unused interface is like an old friend that feels a bit foreign at first return. A gentle reacquaintance is needed.
Your proficiency in a product will decay over time without usage. As such, the proficiency reflected in the UI decays over time. Essentially, your UI regresses without usage.
We implement Progressive Reduction by assigning levels to each feature, starting with level 1. For example, if you gain enough proficiency in Signposting and Delivery you’ll see the level 2 version of various UI elements. If you fail to Signpost for a few months, your UI regresses back to level 1.
The idea of “Experience Decay” is needed to balance the idea of progressive reduction. Without it, you risk creating a bad experience.
I’ve seen a few similar examples of this in the wild—usually in games or in social networks—but never with more serious applications.
One consequence of being able to customize the emphasis on various UI components is the ability to encourage use of different features or hide unused ones. We’re starting to think of an interface as a highly customized thing that’s tailored to the person using it.
I think that’s pretty exciting.
Update: This post generated a decent amount of buzz and questions, so Kelly’s gone ahead and written a follow-up: Implementing Progressive Reduction.