From best practices to sensible defaults
The tech industry is obsessed with “best practices.” People are constantly on the hunt for the latest and greatest processes, tools, and technologies. And yet, despite all the preaching and debate (…and thousands of influencer videos), you will hardly find anything “the best.”
The problem is not just that “the best” is a moving target in the fast-paced technology world, but that it's always a context-specific decision.
What is best for a solo developer, agency, startup, or an established enterprise will be very different. The ideal technology for game development won't translate to better web development, and a developer who needs specific editor integrations won't benefit from using Vim if their plugin is only for VS Code.
The obsession with “best practices” prevents people from developing decisions for themselves. Because if something is the best, why would anyone do or use anything else?
Still, people seek guidance. There are too many decisions to make in any software development endeavor. Nobody should completely ignore the lessons of people that came before. But what we need is guidance that assists in decision-making, rather than replacing it entirely.
This is where the concept of a "sensible default" comes in. A sensible default is a flexible starting point—a well-reasoned choice that we can use if we don’t have a better idea yet.
I heard the term recently on the Thoughtworks’ podcast. I really like it. And I think that every person, team, and company can develop their own “sensible defaults” that streamlines decision-making.
Ultimately, I’d like to see more of this in the industry. Let’s bring more nuance to our decisions, mention the context behind our choices, and acknowledge our blind spots. That, in my opinion, would be for the best.
—Petr