Kindness is a hidden software engineering superpower
November 27, 2020
Sounds fuzzy and a bit bulls*itty, right? Well, it turns out that if your teammates are pricks, you tend to quit or stay and be unhappy and demotivated. This is not fluff; studies and surveys confirm this. We spend a lot of time in our work communities, and it’s vital to be surrounded by people who care, with whom we feel comfortable.
This does not depend on software engineering levels – it’s a universal trait. It’s also technically not a skill, yet there’s a surprising amount of practice involved in getting better at showing kindness. This is not just about having a positive attitude by default – but being genuinely kind to others.
Why is kindness important? Besides leaders’ responsibility to create humane, caring environments for their teams there are well-understood business reasons, too:
In a 2013 article published in Harvard Business Review, Christine Porath said her work shows that teams that work in an environment where rudeness, bullying, demeaning comments, and insults are commonplace usually become fractured. People lose confidence, have low levels of trust, and become less helpful. Bad behavior, she adds, destroys collaboration, is harmful to mental health, and has been proven to be a significant barrier to efficiency.
Forbes argues that kindness is a competitive advantage. I hope it becomes the standard. In a study, Peakon found that their coworkers were the 4th item most employees would like to change – right after salary, communication, and management.
Kindness helps your peers feel safe, and if they feel safe people take the risks that enable efficient, honest communication and thus real collaboration.
What is kindness?
Kindness is showing interest in your peers’ wellbeing; this goes from simply asking them how their weekend went to remembering they had a hard time with something two weeks ago and following up on that. It’s really these simple, everyday things, but doing them consistently.
Kindness is understanding that we all struggle sometimes.
A form of kindness is when faced with a frustrating situation, we don’t assume malice. Instead, we assume good intentions and reach out to clarify.
One key to kindness is empathy – being able to relate to others, understanding how they feel. There are three kinds of empathy:
Cognitive empathy is about thought as much as emotion. It is knowing, understanding, or comprehending on an intellectual level. Knowing how the other person feels and what they might be thinking. This is crucial, but often not enough since you still can be disconnected from or ignore deeper emotions; it doesn’t put you in another’s shoes in a felt sense. Understanding sadness is not the same thing as feeling sad.
Yet, without this, we can’t even talk about understanding others.
Emotional Empathy, just like it sounds, involves directly feeling the emotions that the other person is feeling. It is actually very “biological”, it’s deeply rooted in our so-called mirror neurons. Sometimes this helps the other person (“misery loves company”) but it can easily backfire if you yourself lack the ability to manage distressing emotions. It can really help in forming a connection, though – as it conveys the message “wow, this person really understands me and cares for me”. Just remember, put on your own oxygen mask before helping others.
Compassionate Empathy strikes a powerful balance of the two other kinds above by relying on your emotional intelligence to effectively respond to the situation with a loving detachment.
It honors the natural connection by considering both the felt senses and intellectual situation of the person without losing yourself in the situation. Thus, it enables you to naturally act in the other person’s interest (vs. passively observing or losing yourself to distressing emotions).
Compassionate empathy is the kind that’s useful in most situations.
Remember that I said kindness doesn’t depend on levels? Well, there’s one nuance – the more your perceived power and authority shifts as you level up, the more aware you need to be to practice active kindness. Most people will get less engaged and even demotivated when working with someone cold in power. Another reason is that people look at you for leadership, and your behavior will get copied, so you’re responsible for leading by example.
Why is kindness not trivial?
The main reason is that we bring our personal fears, insecurities, expectations, and context to work. Interestingly, the more skilled your team is, the harder it can get!
We all have a unique background, and not everyone has the same experience that we have. It can be surprising when you encounter someone that hasn’t worked with the technology that you have (“What do you mean you don’t know what a monad is?”). We often forget that the job is not to show how smart we are.
We all have bad days in a bad mood. On days like this, it can take a lot of work for us to come across as kind persons (and it’s all right, you should also receive kindness).
Communication is hard, each message goes through multiple filters by the time it gets to the recipient. Such filters are your tone, body language, phrasing the recipient’s mental and emotional state, their expectations in the situation, cultural and social conditioning. We think we’ve said what we meant to say, but the message easily gets distorted by these filters, e.g. turning a neutral sentence into an attack (“Can I help you?” –> “I don’t trust you can do your job”).
Low hanging fruits of kindness for software engineers
Here is a list of things you can start with right now:
- Be patient with career starters. Being a junior developer is very difficult. Provide them a safe space where they can fail and be instructed, with kindness, about how to prevent the mistake again. Proactively reach out and mentor them.
- Do not mock someone for their chosen language or framework.
- Show forgiveness when something breaks. Outages suck, but even if you can trace it back to a stupid human error, you can’t imagine how that person could have made it; remember that this just shows the system’s weakness and the processes around it. We all make mistakes. Please don’t make it personal.
- Celebrate victories, even small ones.
- Use inclusive language. You’ll be surprised how bad we are at this, intrinsically.
- Learn about body language and understand your default modes there.
- Manage your stress (know your limits, make sure you rest and recharge)
- Be a compassionate code reviewer, not a critic.
- Use humor. Then use some more. Good for you and good for your environment.
- In frustrating situations, assume goodwill, not malice. See Hanlon’s razor.
- Thank people for their help publicly.