I was flying through Cincinnati yesterday and while waiting for my connecting flight I overheard (I wasn’t trying to eavesdrop, but the guy was standing right next to me and talking loudly and clearly) a phone conversation about various aspects of IT consulting. During the conversation the person speaking next to me came out with this great quote:
"There’s no such thing as best practices – only best practitioners."
Ok, I don’t know if I really agree with this 100% (although I did smile and say "that’s right!" to the man on the phone) but it is certainly an interesting idea that raises a whole set of interesting questions related to knowing what’s "best" for a project.
Obviously, best practices exist, but they are generally just rules of thumb. They’re general guidelines to follow in common situations, but they’re not a panacea. In order for them to be applied to greatest effect, the person following the best practices needs to understand not just what to do, but also why.
In order to really get the best, you need not only best practices, but you also need the right people to implement them – the best practitioners, as it were. This is because context is practically everything when it comes to determining meaning, and in order to understand the context of a best practice recommendation, the practitioner needs to first understand two primary things:
1) The business context of the project – without understanding the real problems that need to be solved, no one can select an ideal solution.
2) The technology platform on which the solution will be implemented.
These two factors are vital when applying documented best practices because the best practices are generally presented as a set of prescriptive guidance – do this, don’t do this, also do this – without a great deal of explanation. There’s rarely information about why a given step/task/configuration is considered "best." Because of this, the practitioner needs a solid understanding of how the technology platform works – this will let him interpret the best practice guidance and decide whether a given "best practice" recommendation applies to his current project context.
So what’s best?
The answer of course is "it depends." The answer always depends on the context in which the question is asked.
But when you’re looking for the best solution to your vexing problems, you need not only best practices, but you also need the right people to implement them. I’ve seen too many companies over the years who try to save money by only hiring "junior" personnel, but who then expect these inexperienced folks to deliver top-quality software on aggressive schedules. Although sometimes this can work, it’s never repeatable and generally only succeeds through great personal sacrifice on the part of the team members.
The next time you’re starting a project, think about the skills you’re going to need, and realize that sometimes there’s no substitute for the experience and deep knowledge of a "best practitioner."
 Although this is beginning to change as technologies mature – the patterns & practices group at Microsoft does a great job here.
 No, I’m not trying to advertise or promote myself or anyone else. I’m booked solid (and then some) for as far as I can see, and don’t have any ulterior motives behind the post.