Saturday, March 31, 2012

Best practices? I'm not so sure.

I'll be delivering a webinar this week that has the words "Best Practices" in the presentation title. As I've been preparing, it has really struck me how my definition of a best practice is not the traditional IT definition. Wikipedia says
A best practice is a method or technique that has consistently shown results superior to those achieved with other means, and that is used as a benchmark.
OK. That sounds reasonable, right? So, what's my problem? Well, I think that if this definition is the traditionally accepted standard definition, there's something missing. What about context? I suppose you could infer that a specific context is implied for any best practice, but the inference isn't enough. An unfortunate side effect the label "best practice" has when it is attached to any method or technique is that it makes people blind to the context in which the practice should/could be applied. Can you think of any examples where a practice that is "best" in one context is questionable within another? Sure you can (feel free to share yours in the comments!). But, so often, many people will take a best practice at face value without considering the context of their own situation.

I think a best practice is really a contextual practice. I'm borrowing this term from Eric Ries, author of The Lean Startup. Ries writes that we should strive to understand the context which we find ourselves in, and then apply the practice which is best within that context. I couldn't agree more. It's not about blindly following steps or guidelines that may, or may not, be applicable and particularly useful in your situation. It's about understanding. You've got to understand your situation and take steps that make sense in that context. Not simply take steps that worked for some other person, in some other context, at some other time, just because it is labeled as a "best practice".

My goal for my webinar's list of "best practices" is to offer ways to gain understanding and clarify the context of your specific situation when developing SQL. With a clearer understanding and proper context, you can have confidence to make the right choices that lead to optimal results. Come join me for the webinar and see if I succeed!


Vidar E said...

I've become very conscious about asking "and under what conditions does these best practices apply?". Context is essential in my opinion, and there may still be reasons for not choosing to follow the "best practice".
A little while ago I read a blog (I think it was one of your fellow Oak Table members) about the same issue and the suggestion there was to use the term "default practice" more often. I like that term, because it indicates more clearly that there are several ways to solve a problem. "Best practice" will more easily lead to a "mental lock-in" for those a little less experienced in a problem area.
Personally, I have a feeling that the term "best practices" is more often used in marketing than in professional peer-to-peer language, and therefore is a little devaluated in my ears.

Noons said...

Best (worst!) practice: Datawarehouses are mostly read-only of very large data sets, therefore you need to optimize the db for that.

Oh yeah? So, those very large data sets remain constant and never get updated?
And they got to be large because of self-replication, perhaps?

Vee said...

Some time ago, I remember reading in askTom that if there are only a standard set of rules (whether be 1 rule or 1 million rules) they all could be incorporated into a code and would make the developer or DBA irrelevant.

What you have blogged here brings that to my memory. Many people want to say something quickly and sign a client/project, etc. The best practices are useful for that situation!

Joel Garry said...

words: ressidb yarch
words: indelata gredia

Hemant K Chitale said...

An instructor at a training program I attended some time last year advised us to differentiate between "best practices" and "good practices". What happens when a "best practice" becomes a "universal practice" ?
It then becomes a "standard practice" and a "good practice" .... until somebody discovers "some better algorithm or process".