Friday, 27 January 2012

The Best Default Setting is not to Have a Setting

It is easy to think that letting users change all aspects of an app UI makes the UI better. We've all heard the "if they don't like it they can change it" argument. It is also very easy to come up with theoretical scenarios where users would actually want to change any one aspects of the UI. 

Maybe some users don't want to star emails on gmail. Why doesn't Google let user to hide them? That would save valuable screen real-estate. 

Making something user configurable is not a design "get out of jail free card"!

The reason Google is not letting us remove the star is same reason that everyone should always keep in mind when building apps. Apps can't serve everyone and every use case. It is impossible and apps that try are doomed to suffer from massive usability problems. Apps should be designed to serve their target user group and serve them well. Apps should provide easy access for function that those users need to achieve their goals. 

Don't try to target everyone. Select your core user groups and serve them well.

There are three very concrete problems that come up if app settings are not well thought out.
  1. Apps do have settings that users need to have access to. Too many settings will make it more difficult to find the ones that user actually need.
  2. It the app settings are later rearranged and rethought it is guaranteed to cause at least couple of one star reviews in the market as at least few people have started to rely on strange usage patterns and suddenly that option is removed. It is better to get them right from the start.
  3. Too configurable app will make it nearly impossible to create a consistent user experience. It is better to make your app's UI support your selected user goals than require users to figure out how they can set it up for their needs. 

Should your user have to worry about this setting?
When thinking about app setting the question to ask is: "is this something my users should care about?". There are things that you must let users to set. Users should, for example, always be in control of your app's data usage. If your app is data use heavy you must let them go to wifi-only mode. 

Then there are things that users should never have to care about. User interface should be configurable only in very rare cases. Do you think users should ever care about if buttons are part of a scroll pane or outside it?

Good defaults, best defaults, no settings
Every single setting must have a good default. A good default is something that most users would set it to if they had to choose. A best default is something that users wouldn't even think about. A good default is no excuse for including a setting that shouldn't be there though. Not having a meaningless setting is always better than having one with a good default.

When you're facing a tough interface design problem don't try to get the easy way out by pushing the decision making on users. We are the professionals, we are capable making good UIs. We should be making them.


  1. Lots of common sense in this article,Juhani. Users need simplicity, as much as we developers. Congrats!

  2. This post makes sense for the most part.

    "We should be making them."

    No, you should not decide for your users. You should not take power away from them. Stripping obvious things is good, but the user should always stay in control. Users are not monkeys, they're users, and they like to decide for themselves.

  3. Hey Qoobees,
    It depends on which settings you're talking about. If we're talking about data settings etc I definitely agree with you. But when we start taking about UI I strongly believe that the default position should always be that design the UI to be so good that there's no need for users to tweak it. UI settings should be added only if there's a very good reason for doing so.

    I don't think users are stupid / monkeys but tweaking settings is the last thing they want to do with any app. In many cases "letting users be in control" actually in real life makes it more difficult for users to be in control.

  4. I like the idea that the UI designers can actually come up with what users want. In reality even if you choose a tiny group of core users there are going to be divergences. I would say design the best UI you possibly can so that the user never thinks about changing it. Then give the user the option to ruin it in their own way just in case they really want to.

  5. Hello Juhani, we share the same opinion. Keep up the good work.

  6. Small update suggestion: your quote "Making something user configurable is not a design "get out of jail card!" is *great*, except I think you mean "get out of jail free card".

    Also, there's a typo right after that: "The reason Google is not letting us remove the *start*" - Android has a start button now? ;-)

    Other than those tiny things, very good article. The GNOME desktop community on Linux has been aware of these ideas for a long time, but I feel the Android community seriously needs to learn this lesson, so it's great to see an article on it that targets Android devs specifically.

  7. Hey jensck,
    thanks for pointing out the spelling mistakes! Fixed them.

    Thanks :)