One of the biggest challenges in engineering teams is making decisions. We’ve all heard the term “holy war” to describe two engineers (or groups of engineers) at loggerheads about some topic. Why does this seem to happen so often? There are many root causes - different properties of the system can be valued differently, differences in taste or coding preference, even differences in understanding. But these all ultimately boil down to differences in communication.
It’s very easy to be frustrated with someone else when they aren’t understanding what you are trying to convey. After all, it’s perfectly clear, isn’t it? So they’re just being stubborn, or mean, or dumb…(we know not to assume bad intent right?)
But, of course what you’re trying to convey is clear…to you! You have it in your head already. Your job isn’t to convince the other person that you have it in your head, it’s to get it into their head so you can have a real conversation about it.
So if you assume good intent, and you know that the burden is on you to get the idea across, then any failure of communication is your fault. Not really (and not always), but it’s a really good mental posture to start from. If the other person doesn’t understand, you may have to do some digging to uncover what’s blocking them - maybe they “can’t” hear it because they are focused on a different agenda. Maybe they are missing, or misunderstanding a fundamental precept that’s important. Maybe they have a different definition for one of the terms being used.
Most people, most of the time, want to understand. If communication isn’t working, it’s good to take a step back and ask what you might be able to do differently to help. It’s not really always your fault, but it’s good to act as though it is.