Everything from cricket to programming.

You Pay For What You Don't Get

I read this dilbert strip today, and it reminded me of an earlier blog post by its creator Scott Adams. Scott claims in his blog post that due to the complexity of the interfaces of some websites, you don't know if you're making the right choices. He goes on to claim that Apple get this type of thing right by making things simpler. I think that choice paralysis is something to guard against, but there is a price to be paid. With Apple for example, your choices may be easier, but you are left in no doubt: the product is guaranteed to be sub-optimal.

That's the catch-22 – Add a whole lot of features and options to be as powerful as possible, risking choice paralysis, or keep things simple with a one-size-fits-most approach and risk being not-quite-the-right-fit for everyone.

I think there is a middle ground to be achieved here: having a separate interface for those who want simplicity and from those who want the moon. This is not something new or revolutionary. Programs have had "Advanced" buttons forever. Even 'lynx' has beginner, intermediate and advanced options. However, what these programs don't have is a progressive interface that allows users to learn the details that they are interested in.

What's needed is a more malleable user interface where advanced options and features become available based on context. In this context Microsoft tried (and succeeded to some extent) with the multiple toolbars in their office suite. However, multiple layers of toolbars increase cognitive load for new users.

A better way to ease users into the more complex actions, is to use trigger based education. For example if the application is a music library manager, and the action is ripping an audio CD, then the program may choose to expose a quality setting slider and hide more complex controls. Once the user uses the slider, the application may expose the finer grained controls.

Novice users do not do the trigger actions, and are shielded from the complexity. Intermediate users can use the intermediate controls and learn more about the details of their actions. Advanced users will be able to handle very fine grained controls. At every stage the user is given a chance to progress to the next level on a per action basis.