I while ago, somebody came to me and asked whether there is a list of best practices documented somewhere. But do best practices really exist?
Like many things, the biggest problem with “Best practices” is probably its name. The name implies that a given practice works best in all circumstances: always and everywhere. The most important aspect involved in a trade-off seems to be ignored: context.
I (and others) suggest that we get rid of the term “best practice” and rephrase every so-called “best practice” as a pattern instead. Patterns, like the design patterns, consist of four essential elements:
- A name: Naming things is important. Given that everybody shares the same understanding of a certain concept, it can help greatly in discussions or conveying intent.
- A problem: What are you trying to solve, and in which context?
- A solution: How can you solve the problem at hand? Important here is that the solution is generic. It does not dictate every single thing you need to adhere to but, within certain boundaries, leaves room to fine-tune the solution to your needs.
- Consequences: Every trade-off has consequences. Whether these consequences are acceptable, depends on your context.
Making the context and consequences for certain patterns explicit will probably also reduce the risk that the pattern will be considered as a silver bullet.