Who Decides What Is A “Best Practice”?

iStock_000003491573XSmallNick Malik posted an excellent blog post as a result of viewing several sessions during the Open Group Conference that had him ask how we decide what constitutes a “Best” practice.  In the blog post he describes the difference between agreement on the suitability of a practice and the labeling of that agreement as “Best”.

That said, as much as Jeff and I agree, our agreement does not mean that the practice should be considered a “best” practice.  Who are we to say?  We are practitioners.  While that is good, it is not enough in my mind to qualify the practice as “best.”  – Nick Malik’s Blog

 

The problem as I see it is context.  In order to define a practice as best, you have to generalize the various constraints that point you in one direction or another.  For example it could be said that using a Provider pattern for an Authentication model in an application is a “best” practice (as used by ASP.NET, SharePoint, etc.).  In that pattern each provider is generally defined in a separate assembly and loaded dynamically via dependency injection or good ol’ app.config.  But what if you have to pay a real world fee for each DLL shipped with your application for it to be tested by an independent laboratory for regulatory compliance, as is often the case in financial, (casino) gaming, and other highly regulated areas?  Does that mean the practice of breaking up code into assemblies is no longer a “Best” practice?  The previously undefined context can negate a practice’s “Best” label.

Of course, any Enterprise Architect that answers every conference question with “It Depends” probably doesn’t get called back to speak again very often.  But the suitability of any practice not only depends on the constraints and acceptable outcomes but is in fact defined by them.  Nick touches on this in his recommendations for how to determine if a practice is indeed deserving of the label of “Best”.

  • Some measurement (evidence) that demonstrates that it is an effective practice, and that the measurement shows that it is at least as effective as other practices,
  • A clear understanding of the results of the practice and the context in which it is to be performed (think “Pattern Language” criteria),
  • Some analysis to show that it meets other criteria like broad applicability and simplicity, and
  • We should demonstrate the ability for that practice to be understood and performed by people who are currently

What is considered “best” practice also changes with time and opinion.  I  read a book from the early days of .NET written by a Microsoft Architect that stated that a best practice for web services was to return the System.Data.DataSet object, which is extremely .NET specific and not cross platform agnostic (i.e. a really bad idea).  We’ve seen others come and go from using Try/Catch in every method block to the venerable Visual Basic OnError Goto abused for branching logic.

So what practices do you see that still bear the label of “Best” that need to be reconsidered?  What are your recommendations for how to decide and describe what are and are not best practices?

 

5 thoughts on “Who Decides What Is A “Best Practice”?

  1. Best is a rather obsolute term, When you state that something is “the best” it is emphatic and empirical. Sports suffers this same dilemma. You often hear on sports talk shows (and they can argue the same points for weeks) about who is “the best athlete” or “the best basketball player”. People throw Micheal Jordan out there, then you always have the older guys come in and say, “Wellll, Jordan was the best for his time, but Bill Russel or Wilt were the best of all time.”

    My point here is, we need to be careful we don’t trap ourselves with the words we use. If you want to label something the best, not only should it be at least as effective as the other practices out there, it should be specifically shown how it is better than all the other practices out there. If that truly exists is left for debate.

  2. Pingback: What's So Great About Best Practices? - MKCREATIVEblog

  3. I agree with Dimitri in substance, but I think saying “best practice” has become so overused that nobody really believes (not without proof, at least) that a best practice is in fact the very best of practices to engage in.

    But his point still stands: labeling something as a “best practice” should really come from people who utilze it. What works for one group may not work for another, and it’s not recognizing that point which can drive many organizations into trouble.

  4. I’m on a personal and no doubt doomed war against the term “best practice”. It’s meaningless in most circumstances and harmful in others. It’s been my experience that using the term “best practice” is done to shut down discussion about alternatives. “Why are you questioning this, it’s best practice” is a refrain I’m sure everyone has heard at least once.

    This isn’t to say that trying to optimize practices is a waste of time, of course it isn’t. But labeling something as best prevents analysis of what the optimum solution for the current situation might be.

  5. I’d tend to think of a best practice as a starting point really, rather than a this-is-it. You might want to consider the reasons you are deviating from that practice as a useful exercise to see whether what you are doing passes a smoke test. Otherwise don’t really hesitate to do whatever seems most appropriate for your circumstances – and I’ve never known two sets of circumstances be the same.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s