Have you ever done the dishes by hand?
If not, picture this: stack of dirty plates, glasses, utensils, pots and pans; big bowl filled with hot water and dish washing liquid; running tap to rinse foam of; drainer to stack and a dish towel to dry cleaned stuff.
In my family, we arranged it all from left to right: dirty stack on the left, and drainer on the right. When I helped doing the dishes at a friend’s, I was amazed, and a little annoyed, that they were doing the dishes from right to left.
It didn’t make sense. Not to me. Even now, I can come up with x number of problems when you go from right to left. But, if I’m honest, I can also come up with easy fixes for my perceived problems. And then there is the little matter of left-handedness…
Anyway. How you do the dishes, isn’t the point here.
The point is that it doesn’t matter. That the dishes get done, is what is important.
Still, I remember a lot of discussion around this.
You have probably been involved in them. Religious debates. And no not on religion. On software development. Or on anything else for that matter. Did you start them? Or were you drawn into them? Almost against your will?
Discussions about methods and techniques can quickly deteriorate into verbal skirmishes that rival religious wars in intensity.
Do I have to mention coding style?
Only trade offs
Steering such a religious debate from entrenched warfare about right and wrong, or best and worst, towards constructive debate on which option to pick, is feasible.
You only have to realize and accept that there is no right or wrong, only trade offs.
Like coding style guidelines, standards, methods, techniques and practices all have a lot of value.
However, it hardly ever matters which one you use, as long as you pick and use one. And as long as you pick another when the situation calls for it.
When you pick one, please stop arguing about which one is best. No one method or technique is “best”. And stop looking for best practices. There are none.
There are only trade offs. Trade offs between the characteristics of the options and the goals you are trying to achieve.
Out of the trenches
The trench warfare of religious debates occurs because there are a lot of hidden assumptions around what you are trying to achieve and what is important in getting there. It is exacerbated by a quest for the right or best solution. And nobody likes to be wrong.
The way out?
Steering the discussion away from right or wrong, from best or worst and back to a semblance of a rational discussion.
How do you do that?
Questions. Not statements. Questions.
“What are we trying to achieve again?”
“What is important in getting there?”
“What does option A help us do?”
“What does option A prevent us from doing?”
All that exists are trade offs
All that exists are trade offs.
Tattoo that on your hand if you have to. It will makes discussions so much more fruitful.