I've come to hate the term Best Practice

I'm not against the concept or idea of Best Practice, but just like Communism, when its deployed in the real world, things don't go as planned. Best practice, despite its innocent sounding name, doesn't necessary mean its always good. Best practice simply means that everybody is following in that direction.

In the software engineering department of my company, the upper management is obsessed with Best Practice. We have many meetings where it is evangelized. Its lead to a cult-like behavior where questioning anything that is labeled Best Practice is suspicious or treated as an "anti-pattern." Nobody is questioning if the best practices are wrong or if they only apply in certain situations or certain designs. Maybe there are people who question it but are too afraid to be labeled as a heretic? I know a lot of times I question why we choose to do things a certain way but don't want to be called out.

The biggest reason why best practices in software engineering can be harmful is because not all best practices are really best practices. Some times, certain ways of doing things haven't been generally accepted. Other times, individuals might think their own experience or opinion are best practice because of the community and individuals they surround themselves with. People who are preaching their best practices might actually be preaching their preferences. Take for example Hibernate in Java. Best practice suggest to use it. Does this mean we should use it in ALL scenarios? Does this mean any software not using Hibernate needs to be refactored?

Good best practices are simple and universal. Many developer best practices tackle complex issues that require nuance and context — but that nuance and context get lost as the best practice spreads. Generally speaking, most people agree that blindly accepting and following something without analyzing it is bad, but many developers operate like this. The only way out of this cult is to start questioning the merits of the best practices in question and determine yourself if its beneficial for your, your team, your company and your software.

best practice  cult