A while back I ranted about best practices. Among the things I found in that particular blog entry is that there are quite some definitions for the term “best practice” out there. Nowadays, if it’s not on google, then it doesn’t exist. For best practices google it turns out is quite capable of delivering a definition. Although I resonate with the principles of context-driven testing, I recently found the second principle unhelpful. The second principle states
There are good practices in context, but there are no best practices.
Like many other people that I respect I used to start ranting about best practices whenever people would ask for them. Particularly in training situations, though this does not help so much. J.B. Rainsberger‘s introduction to the Satir Communication Model helped me understand why that is.
The Satir Interaction model
The Satir communication model describes four phases for communication. First, there is intake where the words from the other partner are taken into my braincells. Then my brain will form meaning out of it. Based on my previous impressions I will derive different conclusions. Based on my interpretation of the meaning I derived from the intake, I will assign significance to the message, and decide whether and how to respond.
In any of these four phases miscommunication can happen. If my hearing is impaired, I will take in a different message. If I derive a different meaning from the words as spoken, I will come up with a different interpretation, and probably assign a different significance to the words spoken. Early on I found that there was some miscommunication happening between people looking for best practices and my understanding of it. So, let’s take a look on what happens when miscommunication happens.
Debugging a conversation
Assuming I have heard the message from the person talking to in the right way, I can derive a different meaning than the other one based on our different experiences. We will then have a mis-understanding of the words as spoken. In order to debug our conversation, we will have to work towards a shared understanding between us.
When I react in an emotional way to the message, it might be that I derived a different significance to the words as spoken. Then we will have a mis-interpretation between us. In order to debug our conversation, I will need to understand the interpretation of the other person.
With these two concepts in mind, let’s take a look on what happens when someone says “best practice”.
Debugging best practices
Google cites Wikipedia on best practice:
A best practice is a , method, process, activity, incentive, or reward which conventional wisdom regards as more effective at delivering a particular outcome than any other technique, method, process, etc. when applied to a particular condition or circumstance. …
Note that the definition above includes particular conditions or circumstances where practices deliver more effectively according to conventional wisdom. Usually some folks refer to folclore wisdom in particular contexts like Waterfall, Scrum, or XP.
Usually I thought about best practices as practices for which no better way exists. No better way now, and no better way in the future. In the end it’s the best way to do something, right?
Well, it seems that there is a mismatch between the Wikipedia definition, and my understanding of the term “best practice”. During the past one or two years I found out that I cannot solve this miscommunication by responding emotionally, harsh, or in other ways. Talking someone down does not help in this situation.
Instead, I started to question for what the other person looks for in best practices. By then I can find out if he is really looking for a practice that will always work. More often than not, though, I found out so far that the other person is actually looking for some hints of practical application of the thing that I am speaking about. And there are more helpful ways to react to that expectation that show more respect for the other person.