AS A REWARD FOR READING TODAY'S POST, I'VE INCLUDED A LITTLE SURPRISE AT THE BOTTOM. Thank you for being a fellow Adventurer!
If there's anything we love in tech, a good argument seems to be at the top of the list.
Tabs or spaces? Vim or Emacs? React or Svelte (or Vue or Angular or geez why are there so many JS frameworks...đł)? âRealâ APIs or RESTful ones? Grok, Claude, ChatGPT, or Llama... some of y'all reading this are already triggered, aren't ya? "BUT IT'S BECAUSE $my_choice REALLY IS BETTER AND HERE'S MY 147-SLIDE PRESENTATION TO TELL YOU WHY..."
Weâll spend hours passionately defending a tool, a language, even a design pattern... as if the very soul of software engineering depends on it.
These things we argue about aren't about impact... they're about identity.
We hold onto our preferences like theyâre principles. We dig into positions long after the context has changed. We confuse conviction with clarity. And in the process, we slow our teams down, gatekeep unintentionally, and lose sight of the thing weâre actually here to do: solve problems well.
This isnât a call to stop caring. Itâs a call to care more about the right things.
Less dogma. More rigor.
Why Dogma Feels So Good
Dogma gives us certainty. And in software, certainty is in short supply.
The tech landscape is constantly shifting. New frameworks land every week. Best practices evolve. What felt cutting-edge last year is now âlegacy.â In the middle of that chaos, strong opinions feel like stability. When we say "I only use X," or "Y is trash," we're carving out a sense of control. It's a pillar we can hang onto as we're buffeted by the latest round of hype.
But it becomes problematic when we adopt these things into our identity.
Developers, like all humans, are tribal. We rally around tools and philosophies like sports teams. âIâm a Rust dev.â âI donât touch frontend.â âI only deploy with Terraform.â It feels good to be part of a tribe â especially one with strong opinions (and really dank memes đ¤Ł).
And once weâre in a tribe? We protect it. We dismiss other tools reflexively. We repeat slogans (âJava is dead!â) without checking if theyâre still true. We build personal credibility on top of technical choices that maybe just... worked for us once.
Thereâs nothing inherently wrong with strong preferences. Theyâre human. But when we treat them as universal truths, we start making worse decisions: for ourselves AND for our teams.
When Righteousness Becomes Rigidity
Strong opinions are only a problem when they become rules â especially when those rules are handed down without context.
Letâs talk about platform teams.
Imagine a platform team rolling out a sweeping set of âstandardsâ to unify tooling across their company. The intent is solid: reduce complexity, improve onboarding, and create a common developer experience. The chosen stack? Docker, Terraform, GitHub Actions, and Go for backend services. All great tools. Architects salivate at the idea of a "clean" stack.
But there was a catch: these werenât recommendations. They were requirements.
It didnât matter if your team was maintaining a simple Python script. Didnât matter if your service didnât need infrastructure-as-code. Didnât matter if you were new to Go and had zero internal support. You were expected to adopt the âgolden pathâ.
At first, this looks like progress. The platform team can point to adoption charts and dashboards showing standardization. But out in the product teams, something else is happening:
Delivery slows. Teams spend weeks learning tools that didnât solve problems they actually have.
Shadow systems emerge. Engineers quietly keep using older tools âjust to get things done.â
Morale dips. Developers start referring to the platform as âthe ivory tower.â
The standards werenât wrong. The problem was the dogmatic approach to implementing them: The belief that there was one true way, and that every team regardless of needs or constraints must follow it.
Rigor would have looked different. It wouldâve asked: What are we actually trying to enable? What tradeoffs are we willing to make? Where does consistency help, and where does it hurt?
Instead, the platform team optimized for compliance over collaboration. And in the end, they got neither.
Principles Over Preferences
Thereâs nothing wrong with having preferences. The problem is when we stop at preferences and never graduate to principles.
A preference says:
âI like using X because itâs familiar.â
A principle asks:
âWhat are we optimizing for?â
When we choose tools, frameworks, or patterns without aligning them to principles â like simplicity, maintainability, or developer autonomy â we risk making decisions that feel good in the moment but age poorly in production.
Letâs return to the platform team story.
The problem wasnât that they picked Docker or Go. The problem was they enforced preferences as if they were principles, and skipped the harder conversation: what constraints are we actually trying to solve for? Imagine instead if the team had said:
âWe want fast onboarding â so our tools should be easy to learn.â
âWe want consistent deployments â so we need one reliable CI/CD path, but leave language choice open.â
âWe want to support experimentation â so the platform should stay out of the way unless thereâs a good reason not to.â
Those are principles. You can debate them, adapt them, and evolve them over time.
Tools are temporary. Contexts change. But principles, when theyâre clear and grounded in team needs, can guide decisions even when everything else is moving.
If we want to be rigorous, we need to shift the conversation from âWhat does this tool let us do?â to âWhat are we trying to accomplish â and what tradeoffs are we willing to make to get there?â
Leading With Humility
The higher up you go, the easier it is to confuse influence with authority... and authority with correctness.
If youâre a staff+ engineer, a tech lead, or the person people look to when a hard decision needs to be made, your preferences carry weight. Whether you mean to or not, the tools you use (or dismiss) shape the culture around you.
This is where curiosity becomes more powerful than control.
Instead of:
âWe always use X for this.â
Try:
âWhat problem are you solving, and what tradeoffs did you consider?â
Instead of:
âWe should just standardize on Y.â
Try:
âWhere does consistency help us? And where might it slow us down?â
The goal isnât to avoid decisions. It's to make space for rigor! Your goal should be to create conditions where people feel safe to disagree, experiment, and explain their thinking. Dogma shuts that down... Curiosity invites it in.
And if youâre building internal platforms or setting standards for others, remember: the more control you exert, the more humility you need. Because the cost of being wrong isnât just your own productivity; itâs multiplied across every team who follows your lead.
The best leaders Iâve worked with had strong opinions, and changed them often. They set direction, but held it loosely. They modeled how to prioritize outcomes over orthodoxy.
Because in the end, teams donât succeed because they picked the perfect stack. They succeed because they made clear decisions, stayed aligned on the problem, and moved together.
Wrapping Up
Strong opinions arenât the problem. Itâs when we mistake our preferences for principles. When we trade curiosity for control. That's when things start to break.
If we want healthier teams, faster delivery, and better decision-making, we need to let go of the righteousness that makes us feel smart and lean into the rigor that helps us build well.
Because at the end of the dayâŚ
Itâs not that tabs or spaces donât matter â itâs that they donât matter as much as we act like they do.
Side Note: The Adventures Continue Soon!
Next week, it's time for the launch of...
I hope you'll join me for Season 4 as we go on a DevEx Deep Dive... we'll learn how to start making improvements to the Developer Experience in our coding projects!
Come by and subscribe to The Adventures of Blink on YouTube so you won't miss out!




Top comments (0)