Just from reading from the title, you may have already made up your mind about what this article is all about (and you’re probably right). I’d also wager that if I’d said this directly to you, you’d be ready with a response just as I was uttering the last word. But do you really know what I mean? Why did I use those words? The need I’m trying to express? Which assumptions do you have when interpreting my words that lead to the immediate response or feeling you have now? The thing is, you suck at listening, and I do too.
Developers often find themselves in situations where we need to make decisions, weigh in our opinions and persuade others of our views. We often fail miserably by oversimplifying, jumping to conclusions or arguing. Our responses and thoughts are based on our experiences and assumptions. Which is great since it reduces the cognitive overhead of actually listening to each spoken word. Communication isn’t easy, but we can improve drastically by talking less and listening more.
When words don’t help
Some common approaches to conversations where assumptions, biases or opinions get in the way of having a valuable dialogue.
In a heated two-sided discussion, there’s often a tendency to throw out your opinion in a ping-pong of words. You end up getting nowhere, fast, and feelings hurt or tempers warm. Example: “right vs wrong”.
What are you arguing about?
Arguing over completely different concepts that are both valuable and valid for a given context. It’s just not evident in the discussion since none of the participants stop to realize what the core issue is. Each waiting for their turn to fire down the other framework, technique or approach.
Example: “AngularJs2 is better than ReactJs”.
Entering an existing ongoing discussion with good intentions. Doing your best to get into the context and start to actively discuss with the other participants, often taking a side. Can end in many ways, but usually someone feels hurt, overruled, angry or just sad.
Example: “Yea, I agree with John, we should always have unit tests – 100% test coverage!”
We build up assumptions of what we expect from people and project these onto discussions. How often have you started a discussion either extremely defensive or offensive because you assume the person has an agenda? You listen for words, tone of voice or arguments that support your assumptions and respond to that instead of just listening to the whole meaning and intention.
Example: Thinking-“Now she wants to create a new repo. Typical frontender that wants to use their fancy tools and make themselves more valuable”. Interesting discussion follows..
Overly sharing is not always welcome, especially when you’re eager to jump in and share what you consider to be a valuable opinion. Developers naturally analyze, assess and come to conclusions, since we are good at contemplating on problems and coming up with solutions. Sometimes though, our well-intentioned words are more harmful than saying nothing.
Example: “Last project we had great success with TDD, you should do it”. “We always deploy straight to production, so should you”. “Sounds like you’re not communicating, fix that”.
Not being present
Nothing is worse than speaking with someone that’s only semi-present. Maybe you have your phone out and are trying to multitask. Or maybe you’re looking around at other people. No matter what you’re preoccupied with, you’re not giving the person in front of you your full attention. You are also missing an opportunity to gain new insights into the person, and possibly even yourself.
Don’t just say something, listen!
- Show that you understand and get confirmation or adjustments to this
- Continue conversation based on understanding
This is an approach I have found useful in my path to improving my communication skills. In his book, Non-Violent Communication, Marshall D. Rosenberg advocates the use of empathic listening.
The common miscommunications mentioned earlier would be greatly reduced if we included steps 3 and 4 from this simplified approach. By moving from a reactive self-centered mindset to an understanding open one, we allow impressions of others needs to be formed. This greatly improves our own assessment of any give conversation, requirement or situation.
Instead of focusing on our needs and being right, we are opening up to others’ needs of expressing their viewpoint. This doesn’t mean backing down from a well-formulated or thought through approach. Rather acknowleding where the other person is coming from, what their concerns are, and address those directly.
To truly listen, we must first look inwards and quiet down our inner voice. Mindfulness is a wonderful way to find calm within and allow ourselves to be open to connect with the needs of others. At the very least, we should seek to connect with our own needs and catch when we are assuming, judging, presuming and blurting out opinions.
Making communication easy
Developers working in any form of team or organization need to be open to a more inclusive form of communication. It’s a skill that takes time to master, but is surprisingly easy to begin with. By being present and listening with intent, you will see benefits from the first baby-steps of this immensely powerful approach.
By keeping a beginners mind, knowing you suck at listening, you open yourself up to new learnings. I find that I’m slowly rewiring my mind to listen and react differently. Actively engaging my “System 2”, and hoping to rewire my “System 1” (more on this some other time).
How do you approach discussions, conversations and arguments? How would you like to?
I’d love to hear about your experiences when communicating with others. Please feel free to reach out to me directly if you have any thoughts, questions or criticisms. Or leave a comment below.