April 1, 2009

The Best Practice Myth

What's New

The SCM industry is in love with the concept of "Best Practice": the idea that there is a small set of procedures that will, if rigorously enforced, lead to a development Utopia.  What these procedures are, and how they should be applied to your business varies depending on who you're listening to, and which particular brand of 'Best Practice' they advocate. Some SCM products even come with a built-in process for you to follow!

In this short post, I simply want to climb on my soapbox and state the blatantly obvious: none of authors of these so-called Best Practices know your development environment, none of them know your code, your business model, or your obligations to your customers. What worked for them may not work for you.

Einstein memorably described common sense as "the set of prejudices acquired by age 18", and it strikes me that the idea of Best Practice is in much the same vein. Once someone subscribes to a particular Best Practice model, they become very attached to it, and vociferous  in their support of their chosen methodology. Of course, I cannot entirely except myself from this group: working for Perforce for so long has given me a somewhat one-sided view of the SCM world, but the one thing it has taught me is to take good ideas where I find them, and not to become overly attached to any one way of doing things.

To my way of thinking, there is no single set of practices that will work for everyone, or even a majority. It's an industry myth. In a competitive business world, who aspires to be the same as the competition? Only the runners-up.  If you want to over-leap your competitors, doing different things differently is where you will find your answers.  Ultimately, my view of "Best Practice" is simply to understand your business, your code, your development model and your processes, and then bend your SCM system to suit them; anything else is simply a case of the tail wagging the dog.