Background
Here's an excerpt from fastcodesign interview with Bret Victor:
QUESTION: An argument I'm going to make is that UIs should ideally be "deep" -- that is, simple, intuitive and error-tolerant on the surface, but with levels of more "surgical" functionality built-in below for users to discover and exploit as they grow more skilled with the software.
ANSWER: A lot of designers would say they strive for that, yes. But I don't like that as an ideal at all. For me, the ideal UI offers many uses for many people, but accomplishes that without hidden "deep" features. A piece of paper, for example, can be used for all sorts of things -- pictures, poetry, airplanes, spitballs, stabilizing a wobbly table -- but it doesn't offer those as "hidden features". It's just flexible.
In short, Bret is against hiding features based on user's expertise.
Example
Google limits the power of casual users by presenting only a text box and some filtering options. If you a are power user, and you need more control over your search, you should discover by yourself the advanced features of Google buried in some page somewhere in the internet.
These advanced features or hidden commands include:
"search term"
only show exact matches~search
use synonyms of "search".-search
exclude results with the word search.
These are extremely useful options and Google hides them all from the general searcher.
Google's doing it for simplicity's sake!
Yes, but in doing so, Google is dividing its user base into: dumbass and smartass OR more formally, casual and power user. Also, it's cheating a part of its users by hiding features (or making them hard to access). As we read in the interview, Bret Victor thinks that's bad. So what's good then?
Bret's Solution
Basically, Bret has made the advanced features discoverable yet unobtrusive. Below is the image.
My view
At the moment, I must agree with Bret Victor's philosophy:
- Avoid dividing users and functionality based on expertise.
- Avoid hiding features but make them easily discoverable yet unobtrusive.
As I understand, ignoring above rules will always disappoint one of the two groups and I don't like that. On the other hand, I wonder whether it is possible to make all important features discoverable yet unobrtusive.
My question
Has there been any research on these two competing philosophies? Are there any reasons to prefer one to the other?