Monday, February 20, 2012

The Best Practices Myth

I've found the term "best practices" to typically be a magical incantation that people invoke to use a fictitious third party expert to support their position. When most people say "best practices dictate" they're really just saying "because I said so" and I meet them with extreme skepticism.

This is not to say that the idea of "best practices" isn't alluring. Wouldn't it be great if we could simply do things the "best" way and not have to think about what we're doing. In fact, sometimes it might be valid, for example a "best practice" in java is to follow a naming convention. The first letter of classes should be upper case for example. I think this is reasonable, but frankly I'm currently hard pressed to understand WHY.

If you're going to recommend best practices, I feel you have an obligation to be able to explain the NEED of the "best practice" as well as the value. If the NEED is because someone needs to control someone else, be suspicious. If the need is that many people need to be able to attack a similar problem in a similar manner, then it might have some merit. That also means that the "best practices" are situational and need to be identified with the appropriate context. For example, following a java naming convention in python would not be extremely valuable.

No comments: