Recently I’ve been being bumped into by things that are claiming to be best practices. In some cases they absolutely are, and in other cases it’s more questionable. As I’m preparing for a SharePoint Saturday event in Chicago this morning I’m wearing my speaker shirt from the SharePoint Best Practices Conference. (A conference where many best practices are indeed shared.) I’m skimming through blog posts and emails and I see a note from Eric Shupps about a “best practices” article (that isn’t). I’m reminded of a recent conversation about an article in MSDN magazine titled “10 Best Practices for Building SharePoint Solutions” – which has some summarily bad advice, some poorly communicated advice, and a few nuggets that are helpful.
The articles above sparked a lot of conversation about whether the articles were really best practices or whether they were bad advice. Because the answer was so clear that there were things in them that were bad advice we quickly left the conversation about best practices. So quickly in fact that we didn’t clearly articulate what best practices even are.
In the general software development improvement presentations I used to do I had a tendency to quote James Bach “There is no consensus about what practices are best, unless consensus means ‘people I respect also say they like it.'” (No Best Practices: How to Think About Methodology). I like this quote because it reflects what most people think of as a best practice and points out the slippery slope that we’re on when we’re talking about best practices.
Dictionary.com has this definition for a best practice “a practice which is most appropriate under the circumstances, esp. as considered acceptable or regulated in business; a technique or methodology that, through experience and research, has reliably led to a desired or optimum result.” That’s a fine definition but it’s not much help in the key problem – knowing whether something is a best practice or not. Before I go there, I have to pause and say one of the points that my buddy Ben Curry makes is that Best Practice may not be best for you – you should evaluate whether the “best practice” is really appropriate for your organization – that’s an important point. The standard disclaimers should apply to all “Best Practices”. (Your mileage may vary; past performance is no indication of future returns, etc.)
So how do you determine whether something is a best practice? You open it up to peer review. One of the great things about the way that the patterns & practices team is working on their guidance is that they solicit feedback from an advisory committee and anyone that wants to talk about a code drop that they make available. In my work with the SharePoint Guidance team I can say that the input from the advisors is critical to helping to determine what guidance is provided. They’re careful not to call their work best practices, but the process they’re going through in talking through various approaches and finding what seems to be the best is the right process.
From my perspective, what makes a Best Practice a best practice is that it has been vetted with industry experts and talked through. In the computer security industry it’s expected that new cryptographic algorithms will be open so that they can be examined and tested by the industry. The same process should apply to best practices throughout the computer industry. We should raise ideas as potential best practices to have others validate or reject our perspective on the approach.
The really sticky part about this is that you have to communicate an approach that you think may be a best practice before you can be sure it’s a best practice. In general this means that the person putting forward the idea should say something like “This is what I do because I think it’s best” and should follow that with “Does anyone here disagree?” However, many folks want to skip the validation step. (How many developers do testing?) They want to believe their approach is the best practice and put it forth as a postulate. Of course, life is rarely this simple.
This leaves us with a simple challenge for anyone claiming best practices (thanks James) – “Who says it’s a best practice, that I trust?” (or besides you). Thought of another way (thanks Ben) – “Who says this practice is best for my situation?” In either case, saying something is a best practice doesn’t make it so. (Unless you implicitly trust the author.)
I should now fully disclaim that no one has yet said that this article is a best practice. If you want to participate in making this article a best practice, feel free to comment below on why this is (or isn’t) a best practice for identifying best practices ;)