Compassion and empathy are core skills for developers but are too often disregarded. We know teamwork is essential to companies and individuals, and a 2015 study by PGi showed that collaboration can increase successful innovation by 15%. Humans are a social species, and empathy and compassion are the glue that turns individuals into a great team. These soft skills are also useful for understanding the users and creating a product that will perfectly fit their expectations.
Why compassion and empathy are essential for developers
Empathy and compassion go hand in hand and, says the San Diego-based software developer April Wensel, “while empathy refers more generally to our ability to take the perspective of and feel the emotions of another person, compassion is when those feelings and thoughts include the desire to help.” Wensel became committed to increasing compassion in tech after realizing how much suffering a lack of compassion in tech creates. Developers often use a toxic tone in pull requests and on Stack Overflow, and condescending tones when speaking to colleagues. For Wensel, “compassion is a sign of incredible strength, compassion is something everyone can cultivate, and compassion has the power to heal the tech industry.”
Compassionate code reviews and killing toxic tone
Developers can sometimes be very harsh in code review, which affects both the writer and the reviewer. They can also be callous on Stack Overflow, and when explaining things to other developers. Wensel wants the world of tech to solve its toxic-tone problem and explains that compassionate code reviews need to start with you asking yourself 3 questions before posting a comment:
- Is it true? If what you’re saying is an opinion—for example, “We should never use singletons”—it could be reformulated to, “In this case, I would advise against using a singleton because… ”
- Is it necessary? Example: “This code makes me cringe, but I see why you did it this way.” It’s important to check if you’re trying to help or boost your own ego. Alternatives to these comments can be to automate things (add a linter), mention it privately to your colleague, or simply not post it.
- Is it kind? Plain mean comments are not actually rare in code reviews. Consider this one: “Why didn’t you just use a factory?” The use of words such as “just”, or “easily”, can damage people’s self-esteem and hurt them for no reason. What’s simple to you isn’t necessarily to others and vice versa. Reformulating the example to “Did you consider using a factory here? It would help by… ” gets your point across with more thought and compassion.
Just as toxic tone is contagious, exercising compassion will encourage other people around you to be more compassionate in turn. The loner myth and toxic tone in tech can prevent developers from asking for help or sharing their doubts. Public speaking is not easy when developers judge each other instead of supporting each other, and many people become discouraged.
So you need to cultivate empathy and compassion in your team. The considerate approach here would be to encourage your colleagues to share their knowledge, and if you have experience in giving talks, to give them tips and help them avoid the mistakes you made. Helping others shine is an invaluable skill that will help your team bond and share more than just stand-ups.
Understanding your user and the reason for your code
Employing empathy and compassion will also make you a better colleague, and avoid communication misunderstandings that, let’s be frank, can happen often when getting specs for development. Understanding who your users are and how they use your product will allow you to understand the requirements better, but you will also be able to question them when they seem off. When planning Sprints, having compassion will reduce the back and forth and make your demos more relevant. You will also avoid spending time developing something that doesn’t work because you didn’t bother spending a few more minutes clarifying the requirements.
Being able to understand how your code may affect users is also a key skill for a developer to have. While you will not always be the one making the decisions about what features to develop, you have a responsibility towards the people you may harm with your code. Dr Katy Cook, founder of the Center for Technology Awareness, recommends that developers, “follow their programming down the line to customers/end users and imagine the impacts—both positive and negative, both immediate and long term—on their lives.” She also advises to learn and practice active listening and to “practice reframing what people are saying when they speak.”
Listening to underrepresented minorities around you
When you have privilege, whether because you’re a man, white, or straight, for example, it’s on you to make sure your work environment is not hostile to underrepresented minorities, because you’re in a position to make a difference. There are many ways we can make a difference for underrepresented minorities when we have privilege. “We can amplify the views of people not being heard at meetings, and bring back conversations when someone is interrupted” says Dolly Chugh, a professor at the New York University Stern School of Business. “We can give credit for people’s work and spread the word about their talent. We can notice when bias is playing out around us, and name it when it happens.” All these actions require but also strengthen your empathy and compassion.
Attending a dedicated training session
There are many resources for teams and individuals to strengthen their empathy and compassion. The Center for Technology Awareness has developed training courses and workshops on these subjects, and offers 1- to 2-day training for employees, or corporate consulting around how to make tech organizations more empathic and emotionally intelligent. Wensel’s company, Compassionate Coding, provides training for organizations to build diverse teams, improve team communications and onboarding, and much more. For individuals, there are also online courses available to increase your compassion in daily life.
Concrete steps towards compassionate coding that you can take, starting now:
- Apply compassionate-code review principles for your next pull requests.
- Ask a colleague from marketing who your users are and how they use your product.
- In your next meeting, observe underrepresented minorities and amplify their voices. If you see they are trying to talk but keep getting interrupted, interrupt to give them back the floor.
This article is part of Behind the Code, the media for developers, by developers. Discover more articles and videos by visiting Behind the Code!
Follow us on Twitter to stay tuned!
Illustration by Brice Marchal