For better or worse I tend to argue most strongly with those I trust and respect the most. I trust them with my thoughts; I trust that they won’t let a disagreement get in the way of our friendship; I trust that they will let their ideas confront my ideas and that together we will refine our ideas and find harmony.
You could alternatively say that I’m insecure sharing my disagreements with people who haven’t already built up that trust. I’m afraid that if we have ideological or practical differences that they shut me down and turn me away.
My time in Madrid was characterized by the right group of people from work descending into the same city at one time and holding about two weeks of thought-provoking and helpful discourse, dissenting from one another and challenging everything each one of us said.
At the end of my stay I felt that we had found a kind of breakthrough and that has put me on a good path since that time. We wrestled and came out victorious. There is little that I enjoy more than entering into a discourse with a close friend and rip apart our ideas until we find clarity together.
It’s often that I reflect on the peripatetic philosophers when thinking about code. Code is in a very real sense our enemy: what we do is substantiated by discovering, understanding, and defining problems needing to be solved. That is, I find that our most productive moments come from touring a city or during a long hike where alone or in company we toss out the fundamental question, what exactly are we trying to accomplish? and let the chips fall. Take that long breakfast at the cafe, sip on the coffee under the umbrella, and hold that conversation because that extra hour can save us weeks of doing the wrong thing.