One of my pet peeves is when folks write me every time I use the term “best practices” to lecture me about how there are no “best practices,” only “good practices.”
So I was glad to learn that Rex Black, one of the old-school testing folks I look up most feels the same way. This topic came up in my recent TestTalks interview with Rex, and the answer he gave on how to address folks who do this was brilliant, so I had to share it with you.
Think Pattern, Not Recipe
Rex often sees members of the testing community take a common phrase and somehow impart attributes to it that no one else does.
Rex offered up an awesome rebuttal to use the next time you find yourself attempting to explain best practices to people, which is: Think pattern, not a recipe.
Chocolate Cake
If I give you a recipe for chocolate cake, and you buy the exact ingredients I describe and follow the exact steps that I give you, you will produce the exact same chocolate cake that I produce with that same recipe.
That's not the way to think about a best practice. You should instead think about it as a pattern.
Examples of a Best Practice and a Pattern
Rex shared an example of a rule that one of his clients has for its delivery drivers, which is to minimize left turns. It's a best practice when doing numerous package deliveries to make a few left turns as possible, because left turns take longer, so you sit idling, right. Left turns also makes you much more likely to get into an accident as opposed to right turns.
That's a pattern.
It is a best practice to minimize left turns. It's not a recipe, because it doesn't say exactly what to do in every single situation. What it does say is when you're making choices about what to do, go this way when you can rather than that way.
This is similar to saying that the Agile Manifesto is a set of best practices, in the sense of it saying, “Do more of this and less of this,” you know, “More interaction with people, less focus on rigid processes.” There you go. That's a best practice.
Rex Rant
Rex gave an awesome rant and was able to verbalize exactly what I’ve been trying to for years.
How can some people have such an amazingly violent reaction to such an anodyne phrase? And why do they think it means “recipe” when it’s clearly not meant that way?
In the past, I've challenged people by saying, “Show me an example where somebody's using the phrase ‘best practice’ to mean that you always have to do something exactly this way,” and I've yet to find someone who is able to point to a concrete example.
If I say I've definitely seen Sasquatch in my front yard, does that mean that Sasquatch exists?
I imagine you'd want me to show you an actual photo of me bear hugging Sasquatch in the front yard of my house before you'd believe that he existed and was running around my neighborhood.
“Best” to most means “better than any other”, not a good pattern worth repeating because it has value. My pet peeve is when people refer to a “best practice” or a “good practice” for their favorite or popular “flavor of the month”, “cool”, or “awesome” technique that will soon become tomorrow’s anti-pattern. To claim that you know and follow the “best practice” (because by definition there is only one) in any discipline is a tall order and better have been tested over years with full scrutiny and agreement from the entire professional and academic community. “Practice” does not mean script or recipe and I am not aware of anyone treating it as such. It seems that Rex has created what is known as a “straw man”, which is easy to tear down in order to help Joe with a response to his pet peeve about testers analyzing his claims of what constitutes the best practice that they should adopt. Just call them good, favored, recommended, or sponsored practices, since that is what they are. But, please do not claim that any one of them is the “best” in a certain class until the testing community proves there is none better in any context. Avoiding left turns is generally a good practice, but it is definitely not the best practice in plenty of circumstances based on what country you are in, the time of day, traffic, construction, road conditions, route efficiency, delivery locations, order of stops for last loaded first out delivery, weather conditions, local laws, lane restrictions, accessibility of delivery driveways, etc. So a practice can only be good within a particular context, otherwise you may find that your supposed “best” practice has you driving in circles.
For the record it is a good and healthy activity for testers to question the status quo including the use and meaning of common phrases. Pet peeve or not, this should be encouraged, not shut down with a pithy comeback.