I want to talk a little bit about “best practices”, and whether or not they can ever actually exist.
I’ve been in countless meetings that speak of the need for them, but what are they and what do they mean?
Let’s take a little look at what our old friend Wikipedia has to say on the subject:
“A best practice is a method or technique that has been generally accepted as superior to any alternatives because it produces results that are superior to those achieved by other means or because it has become a standard way of doing things, e.g. a standard way of complying with legal or ethical requirements.”Wikipedia
Hmm ok. Well. In my view – and this isn’t new and can’t possibly be controversial – the notion that a one-size-fits-all “best” way to do anything exists is fanciful at best and disingenuous at worst. Surely the best approach to anything is the one that helps you achieve your stated objectives?
The key to that, as ever, is context. In the context of software development, what works on Project A may be an absolute disaster on Project B, in much the same way as the culture, challenges and political environment will always vary subtly between clients.
In short, no two projects are the same. No two clients are exactly the same. Many will have similar challenges but the recipe will always vary: a little more maturity here, a little less there – and with that in mind, by definition there cannot be a singular “best practice”.
I’d like to think that, when people use the phrase “best practice” what they are actually referring to is “good practice”, and we can all get behind that. We should always be aspiring for the “best” way to deliver something, but let’s not pretend that won’t vary.