A Sensible Default is a practice that, absent some overriding context,
should be used when carrying out a certain kind of task. In software
development such sensible defaults might include things like “use version
control”, “separate UI logic from domain logic”, “automate deployment
pipelines”.
The term “sensible default” is a deliberate contrast to “best practice”.
Folks dislike calling things “best practice” because that term implies a
general presumption that the best practice is something we should always
expect to do. A “sensible default”, however, is something that should be
reassessed in a new context, something that can (and should) be overridden
when circumstances change.
I first heard the term when it was popularized within Thoughtworks by Evan
Bottcher. He got the name from talking to James Ross, and found the phrasing
appealing as carried the nuance he was seeking, a known-good starting
point.
A sensible default is what we’d expect you to do, the practices to apply,
if there are no hard constraints in the environment. Do these practices, or
do better, and be prepared to explain why you’ve chosen some other way.— Evan Bottcher
Thoughtworks has since made much of this concept, including publishing
a playbook of the ones we use. We expect people to be familiar with these
defaults, ready to use them when starting any new piece of work. They are our
defaults because we’ve used them in many situations and found them to be
effective. But teams should also be familiar with their limitations, and able
to judge whether they should be changed depending on the particular
circumstances. As the twelfth agile principle
says: “At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.” We also reassess
these defaults regularly – this is the heart of the Thoughtworks Technology
Radar.
Searching on the web led me to a post
from Steve Bennett on Sensible Defaults. The post was written at about the
time Evan talked to James. I do not know whether it was where James got the
name from, or whether it appeared in parallel.

