Sane Defaults
In this blog I will be writing about a concept I am very passionate about: sane defaults. To narrow the scope somewhat, I will only be referring to software.
What are sane defaults?
Any piece of software that is configurable has settings. Because it is often infeasible or unnecessary to ask the user for a value for every setting, there are defaults. A default is a value for a setting that is chosen without user input.
Defaults are everywhere. Your phone has a default background image. Your operating system has a default language. Try listing all the default settings that exist and you quickly realize two things: there are far more settings that have defaults than settings that do not, and you tend to not think about defaults.
Settings without defaults
Settings that do not have defaults include a password for a smartphone. It is easy to imagine why you would not want to have a default: a default password will likely be used far more often than any non-default, and therefore be unsafe. Routers often have default passwords, which is a common security issue.
You don’t think about most defaults
Insane defaults often stick out like sore thumb. Most defaults are sane, because if they were not computers would be unusable.
Try to remember the last time you bought a new smartphone. By default, it will probably have easy access to the camera functionality. The dialer app will be on the most prominent home screen. Automatic updates will be enabled. The screen will dim after 30 seconds of inactivity. The flashlight will be off.
This is not rocket science, you will think. It would be ridiculous if a phone bought in Germany defaulted to Japanese as an interface language, if the dialer app was hidden and the flashlight turned on as soon as you took the phone out of the box.
Yet when installing Git for Windows, you see this prompt:

At one point in the past, it was decided that the default text editor for Git would be Vim. Regardless of what you think of Vim, this is a bizarre default. Vim is not included in Windows, so few Windows users will be familiar with it. Vim is so difficult to use for the uninitiated that the dialog box prompting users links to a page explaining why it is a bad default.
As user experience (UX) is like a joke: if you have to explain it to people, it is not a good one. I’m sure there are very good reasons why Vim is still the ‘default’ editor. I’m also sure that the Git for Windows people would love to change that default.
Dark patterns
Most insane defaults are chosen by people who have the user’s best interests at heart. Hanlon’s razor tells us that we should not assume insane defaults are a consequence of malice. Sometimes however, incompetence is the less likely explanation of a default setting.
There are these things called dark patterns, some of which are intentionally insane defaults. They are malicious in that they do not have the user’s best interest at heart. I suspect a common insane default that is also a dark pattern is an opt-out that should rather be an opt-in. Windows and most Google services default to privacy settings that are in the best interest of Microsoft and Google, and not those of the user.
People have been catching up to this specific kind of insane default for a while. In the context of GDPR, a pre-ticked checkbox is not consent. In other words, signing up users for a newsletter by default is illegal in the European Union. Sometimes, not having sane defaults will get you sued.
“just works”
I think I speak for many people when I say I want a system that ‘just works’. Creating a system that just works can be very difficult. Just working is dependent on the context: a piece of software that just works should achieve what is expected from it. This is different from sane defaults: not only does the configuration have to be painless (if at all necessary), in addition, the expectations need to match the abilities of the system.
Conclusion
Sane defaults are important, because they improve the user experience. A sane default matches the expectations of the user and helps them achieve what they expect of a tool. Sane defaults are not the same as ‘good UX’, but rather a very specific aspect of making complicated tools pleasant to use.