A couple months ago I started a series of posts about communication (see Non-Violent Communication for Agile Teams). The concept of non-violent communication has been introduced and championed by Marshall Rosenberg in his notable book. As I received feedback from readers on that post, some reactions could be summarized as follows: "What are you talking about? Which violence? Do you think we behave outright violently when we communicate at work?" I pondered that, and came up with a bit re-framed concept. While Marshall Rosenberg has been dealing with people from various spheres of life, e.g. jail confines, family violence, and other cases of the outright aggressive behavior, we have quite a different situation as IT professionals. We can not be violent per se; this is office, work and yelling at someone, or using physical force (which would be perceived as the ultimate violence) is out of question, of course.
So, I'd like to give a bit different highlight to the subject of communication in agile teams, calling it "non-judgmental communication". If we think about it, in its verbal form, in a well-behaved social environment, what would the utter form of this "violence" be? To me, this is accusation. For example, when a person in a team publicly blames another person for a failed release, saying: "It's all your fault. You've missed this thing in the code. You overlooked this bug. You're the one to blame for this late release". It's an utterly simplistic example, just for the sake of example. From what I see, the culture in most software development teams does not allow people to be that bluntly accusing. We are all human, and we know that people must have their reasons for the delays, or problems with code, etc.
The next gradation of violence in agile teams would be judgment. Someone might ask, why on Earth can judgement be a form of violence? Let's look deeper into that. The most common example is calling a thing someone else has done "good" or "bad". Especially when this judgement comes from someone in a position of a formal or informal authority. Like, your code is "good", your design is "bad", your article is "good". Think about it, which value such an evaluative adjective would bring to what the team is trying to do? It's only a judgement, and it suggests no way out. Doomed. However, what we are looking for when we work in a team? We look for the ways to improve. To keep our colleagues encouraged to perform at their top ability. To me, the "good-bad" judgment ultimately kills this spirit of friendly feedback and improvement. Okay, you say that this design is bad. But have you noted that this person is truly searching for a sweet spot? That this person genuinely cares? That he or she wants to come up with the workable solution? Why not reach out and help? Same with the written pieces and presentations. The best thing one can do is express their perception as a feedback. So, instead of saying "this presentation was the best", we need to learn to say "this presentation was of most interest to me. I find it well prepared". If we want a more fitting word instead of "good" to express our attitude, I have this friendly word ready: interesting.
Now, someone might ask why it might sound so upsetting to the other people when someone else gets the "this one is the best" score. First of all, everyone invests their best effort in what they do. The judgment given to only one out of many might sound especially painful to those others, if they feel underappreciated for their input. They would then project their feeling of being underappreciated to this "good" praise that goes to another bird in the common flock. Someone might call this nonsense, but it's as serious as it can get. It's all in the culture. If the feeling of underappreciation is mixed with the judgmental "good" that goes to another peer, this is a flammable mixture. It's a far graver cultural flaw than one might see on the surface.
This whole subject of judgments can acquire another perspective. Some of you might have heard of the Dunning-Krueger effect. In short, this is when the incompetent rate their skills high simply for their inability to recognize their mistakes, and the competent are too harsh on themselves. For agile teams, this might have a consequence that competent professionals who suffer from this bias, might get all unenthusiastic about their abilities at all, which in the end would mean losing out for the whole team, as they won't be able to capitalize on the skills of the competent ones. On the other hand, we tend to be very condescending to those "incompetent". If someone does an utterly improper thing, and then goes how great he is, we somehow rather laugh at this person, whereas a harsh judgement could be a proper response in this particular case. It's a very fine line, and certain psychological skills are required to keep it. Remember the Emperor's New Clothes tale? No one dared to say that the emperor just had no clothes on, until a young boy voiced the truth. Actually, there's another human reason for this loose attitude. Subconsciously, we might feel that we are superior to the incompetent ones, that's why we "let them live", just to make fun out of them, keeping their heightened false beliefs of their abilities. In such cases, a shock treatment might be needed, and something like a judgement really needs to be expressed. Like, dude, can't you see that what you say is absolutely clueless? This will be like a sobering shower for this incompetent person, and finally it would help them form a realistic understanding of their abilities, and improve, if not in the area where they're clueless, then in something else.
The benefits of non-judgmental communication are enormous. Organizational culture does not emerge overnight. This is something that builds up with time. The first steps that one might want to take looking to introduce the non-judgmental culture, could be this: watch yourself, whether you use judgement when giving feedback about someone's performance. Note if you're inclined to "good" or "bad", and consciously replace it with "interesting", or "smart thinking behind this code", or "I can see that you've put much effort in this design". If you need this person to improve their work — this means, to make the design more compliant with the objectives, etc. — rather give them some advice. Creative people are usually very sensitive. They need to be treated like fragile antique vases. *almost no kidding*. To get the best of their abilities, one has to learn to communicate with such people. Acknowledge their input. These are all very subtle things. But devil is in the details, and software development is more about people than anything else, and I humbly hope that my posts contribute to this shared awareness.