“The ability to observe without evaluating is the highest form of intelligence.” — Jiddu Krishnamurti
Some years ago I shared feedback with a customer on our cooperation thus far — all with very constructive intentions. However, I made a mistake. I slipped in a piece of judgement, and that ended up being the only thing being heard by the customer.
What did I say? I mentioned I felt that certain issues with a team were wildly exaggerated. Absolutely, I did explain this was a natural result of the way things were communicated, and that this was the real issue to be addressed, but already during the call I sensed that that part wasn’t heard at all. And indeed, after receiving a summary email about the call, it appeared they primarily heard “wildly exaggerated,” the rest was just noise.
Sorry, I did not hear you through all that judgment.
Whereas in previous chapters we focused on the motivational impact of judgment (e.g. “good boy!” — praise is judgment), we will now the explore the effect of judgment on our communication.
Marshal B. Rosenberg is the “inventor” of something called Nonviolent Communication. In his book “Nonviolent Communication: A Language of Life” he observes that when we use negative judgment in our language something distracting happens:
Our attention is focused on classifying, analyzing, and determining levels of wrongness rather than on what we and others need and are not getting.
Or in other words:
Whenever there is negative judgement in your communication, people will fail to hear anything else.
Our language is filled with words that evaluate; that judge.
Good, bad, evil, exaggerated, winner, loser, better, worse.
Why? It’s part of our culture. In movies there’s the good guys and the bad guys. You got a “good boy!” when going off the slide. You got a golden star on your test. You get graded. You get rated. You get ranked. You get discriminated against. You get praised.
Judgment is everywhere. It is expected.
But should it be?
I will argue it should not. Pas du judgement! Judgment considered harmful.
No more judgment.
The core idea behind Rosenberg’s Nonviolent Communication, or NVC for short, is to separate evaluation (judgment) from observation, so that you end up with clean judgment free language. And voila, people will actually start to hear you. It’s easier said than done though, because we’ve been trained to talk judgmentally our entire lives.
So, how do we do this?
Here’s the essence of Nonviolent Communication summarized in 4 points, the NVC way of structuring a piece of communication:
- Observation: what do you observe, without judgment.
- Feelings: the fuzzy stuff — how does the observation make you feel?
- Needs: what are your needs regarding these observations and feelings?
- Request: what do you want from the other person.
Let’s apply this in a developer context.
Let’s say you feel that one of your fellow developers is too careless with code and doesn’t care about quality at all. So, you share feedback YOLO-style:
Hey Joe, your code is of terrible quality. Do you not care at all?
Pretty concisely formulated! Pats on back, Yet, somehow it doesn’t have the desired effect.
Joe gets angry and stops speaking to you. Worse: no change in code quality at all.
What went wrong?
There are two pieces of judgement in here:
- “Terrible quality” is a judgement, not an observation. What specifically do you observe about the code that resulted in this judgement? Perhaps not all edge cases are taken into account, as displayed by limited or no unit tests — that’s an objective observation. Perhaps indentation doesn’t follow the guidelines — another observation (but not: “your code is poorly indented,” because poorly is another evaluation.)
- “Not care” is also a judgement. You don’t know if Joe doesn’t care, that’s just your guess. Perhaps Joe is doing his very best, but just has never been made aware of all issues (because he never received good feedback before). Suggestion: leave this part out altogether.
So, how to do this NVC-style?
Let’s say that for you the core of the issue is the lack of unit coverage with sufficient eye for edge cases.
Let’s start with the observation:
Hey Joe, I see that your code’s test cases do not cover all edge cases that need to be covered, specifically: A, B and C.
Moving on to associated feelings — just because we developers love to talk about those:
This makes me feel fearful that the code does not work as specified.
Moving on to needs:
This is because I have the need for important code (such as this) to be fully unit tested to ensure it works today and will not break in the future.
And a request:
Could you please add additional unit tests that cover all mentioned edge cases?
Do you think Joe get angry when you tell him this? I doubt it.
Will he hear you? Chances are high that he will — not being distracted by judgment.
Will he improve? Well, that’s up to Joe.