How often do we ask ourselves why best practices are considered the best? Was there some county fair where we rounded up all the practices and the judge walked around with an armful of blue ribbons declaring which ones were best? The answer is clearly no, but that still leaves us searching for the people who actually do decide what practices are best. An article by Paul Ballard suggest that the context of the best practice is what makes it “best” in the first place:
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.
Since “best” tends to be an overused term, how can we really tell which practices are indeed “best” and which ones are not? Ballard lists four pieces of advice for sorting through practices that were listed on business blogger Nick Malik’s website:
- Some measure (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 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.
- We should demonstrate the ability for that practice to be understood and performed by current employees.
Furthermore, Ballard notes that the definition of what we may consider to be a best practice will change with time and opinion. In other words, there is no absolute fool-proof way to say time and time again whether a practice will be best or not. However, you can train yourself to be able to look at a practice and decide whether it is valid or just something that someone slapped the word “best” onto.