It's an idea I can't shake lately.
It seems common to see people speak with certainty about any given software engineering practice, idiom, or concept. This isn't just people new to the field, enamored with a technology. In fact, it can be prominent with experienced folks. Yet if you pull on a thread or two, there's no verifiable underlying support for the views. Good intuition? yes. Scientific validity? rarely.
I'm sure you can think of examples. Just look to the last few pull requests or design discussions you've observed.
My current working idea: Most practices are subjective and often contrary to one another. Subsequently, what's more important is choosing one of the broad system/software classes and being consistent about how it's applied.
All rules and idioms are rules of thumb, useful for making quick decisions. All of the rules have exceptions. You are becoming a senior developer.
If you're talking to someone who thinks you should always write tests, always DRY, everything should be OOP/Functional, then you're talking to a junior Dev.