I'm considering using progressive disclosure techniques to introduce new users to our product, presenting features and tasks in a timely manner until they have used the product a few times.

Once the user has completed the main tasks and used core features, I'm intending that the interface is altered so it suitable for experienced users.

Is this approach recommended? Has it been used successfully in other applications?

4 Answers 4


Alan Cooper has written some great stuff about what skill level to direct your main design effort to. He calls it the perpetual intermediate, meaning that users' skill levels are often distributed like a Gauss curve:

Beginners will often have such basic questions as "What does the program do?", "How do I print?", "What is the program's scope?", but will often quickly move on to being Intermediates.

Intermediates will ask things like "How do I find facility X?", "What is this control for?" or "Oops! Can I undo?". Most users are likely to remain at this stage, as they don't have the time or will to move on to become an expert. Hence they stay perpetual intermediates.

Experts will do advanced things, such as automating tasks, use shortcuts, customizing the application for their needs.

The focus on designing for perpetual intermediates doesn't mean you should abandon your efforts to bring beginners up to speed, but you should always keep in mind that features that are helpful for beginners can as well be hurdles for intermediates and experts.

Some helpful design principles from his book "About Face" (quotes from chapter 3) include:

  • Nobody wants to remain a beginner.
  • Optimize for intermediates.
  • Imagine users as very intelligent but very busy
  • 3
    "Imagine users as very intelligent but very busy" is a great principle. It's not about holding users' hands to guide them, but making things immediately obvious.
    – Mario
    May 27, 2011 at 18:27
  • For those interested in cog sci, see also work on stable sub-optimal performance. e.g., onlinelibrary.wiley.com/doi/10.1207/s15516709cog2806_2/abstract
    – gef05
    May 27, 2011 at 19:32

I wouldn't limit/hide features for new users; changing the interface while using a software has a great potential of confusing the user. Instead I'd try to make it easy to get familiar with your product. I see two possibilities:

  1. Guided tour. Can work if users are committed to using your product.

  2. Explain features on the go. E.g. whenever a function is used for the first time show a bubble or something with a hint: "Did you know you can do this and that with this item?". There should of course always be options to disable hints and to see all hints. Many iPhone games and other apps use this approach and I find it pretty helpful.

Hope that helps, Phil

  • 1
    Also consider the situation where an experienced user explains something to a beginning user. It is very confusing to both of them if their interfaces don't have the same functionality
    – Jan Fabry
    May 27, 2011 at 16:26

Progressive disclosure can be used to tailor the product to the user’s level of expertise. The paradoxical trick to making it work is to link the disclosure to the tasks the user wants to accomplish, not the expertise of the user. Users don’t wake up one day suddenly experts, nor do they suddenly need all your advanced features, nor do the vast majority of users want to become experts with your particular app (they’re just not that into you). Instead, users gradually become more knowledgeable as they learn each new feature in order to solve a specific problem related to the task at hand. Within a week or month they may encounter their first need for an advanced feature, but almost no users ever need all the advanced features. Different users encounter different problems so each learns a different set of advanced features, and even users with the same problems learn them in a different order.

Because of that, linking progressive disclosure to expertise won’t work.

  • Do not automatically start showing advanced features for long-time users. Just because user have used the app for a long time doesn’t mean they are ready or even need the particular features you’re about to show. Since users have different problems which they encounter in different sequences, you can’t predict what feature they’ll need to be exposed to next. Changing the UI on its own will just confuse users.

  • Do not have Basic and Advanced modes for the user to choose. Users don’t know if the problem they need to solve is something you consider “advanced,” so that just means they have to search two places for the feature that will help them. Have a Novice, Regular, Expert, and Guru mode, and now you have four places users need to search. Because users will encounter a need for their first advanced feature relatively early on, they inevitably need to go into Advanced while they’re still new, where they’ll be overwhelmed by all the advanced features they don’t need yet. The end result is no one is using Basic mode –they’re all in Advanced, and all lost, and you’ve defeated the purpose of progressive disclosure.

Instead, you want to group your features by task or problem and put them behind a label that makes it clear what problems they solve or tasks they support. It’s okay to have a few very basic groups exposed by default –these are the features and functions minimally needed to do anything with the product (e.g., Exit). When the user exposes a group and uses the controls within, then that group remains exposed indefinitely –it’s still open when the user returns to the product for a later session (unless the user manually closes it). In this way, the UI evolves to provide easy access to specifically the functions the users needs when they need them.

This answer is an elaboration of my answer to The Developer Fundamentalists vs The Usability Guys in the closed Joel On Software - Design of Software discussion group.

  • 1
    +1 for "Different users encounter different problems so each learns a different set of advanced features, and even users with the same problems learn them in a different order". It's so true. May 27, 2011 at 15:15
  • You are best off putting the user in control of enabling additional features.

There's nothing wrong with a simplified interface, but there is with it changing unexpectedly. Put the user in control.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.