Being a software developer is a tricky business. There are low’s and high’s lurking around every corner: Could this class be well-written, tested and a joy to work with or am I going to find regions of pain? Will the product demo be horrid and tedious or a joy for the stakeholders? Heated discussions, disagreements or blissful communication? Kind words or brutally honest feedback?

How can we keep up in this emotional roller coaster, while at the same time keeping up with the technology and our work? Could empathy be the secret ingredient in the awesomesauce of software development? This may very well be the case…

Defining Empathy

Empathy – the action of understanding, being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another of either the past or present without having the feelings, thoughts, and experience fully communicated in an objectively explicit manner;

or as Brené Brown explains:

The definition in the video isn’t complete, as there are many aspects to what empathy is and how it fits into our range of emotions. It conveys the most important part though: It’s all about making a connection with another person.

The case for empathy in Software Development

As I mentioned on the My Life For The Code podcast, I’ve recently found that a part of who I am and want to be is a person with a sense of empathy for myself and those around me. I also asked a question on empathy to the next guest on the show, Isaac Smolund, who had a wonderful answer.

Talking about empathy has lead to connecting with another person with their heart in empathy: Andrea Goulet and her blog Empathy Driven Development.

I’ve also stumbled upon wonderous individuals that share their story of empathy in software development on the Developer on Fire podcast:

Listening to numerous other Developer on Fire episodes also reveal that a there are a number of other highly skilled and successful developers that promote empathy, listening and understanding as skills for other developers to hone.

There are a wide range of developers here, ranging from technical geniuses to community leaders, open-source members, CTO’s in startups or caring developers in the enterprise.

Empathy as the most important skill

As with any other skill, empathy can be practiced. Chad Fowler has written a wonderful blog post on the topic, which strongly matches my personal experiences and feelings. He puts forward the case that empathy may very well be the most important skill a software developer needs to really step up their game from a personal, social and career-aspect.

Why practice empathy?

From Chad Fowler’s post:

Why should you explicitly work to enhance your ability to empathize with others? You will be more likely to treat the people you care about the way they wish you would treat them.

You will better understand the needs of people around you.

You will more clearly understand the perception you create in others with your words and actions.

You will understand the unspoken parts of your communication with others.

You will better understand the needs of your customers at work.

You will have less trouble dealing with interpersonal conflict both at home and at work.

You will be able to more accurately predict the actions and reactions of people you interact with.

You will learn how to motivate the people around you.

You will more effectively convince others of your point of view.

You will experience the world in higher resolution as you perceive through not only your perspective but the perspectives of those around you.

You will find it easier to deal with the negativity of others if you can better understand their motivations and fears. Lately when I find myself personally struggling with someone, I remind myself to empathize and I immediately calm myself and accept the situation for what it is. You will be a better leader, a better follower, and most important, a better friend.

Practicing

The benefits of being more empathic and in touch with the needs of others and of yourself are clearly something most developers can get behind. Usually though developers approach this by learning tips and techniques and apply them with success. The problem though is that these techniques may or may not apply to different situations, which require learning more techniques. This leads to a very structured and possibly group-thought approach to problem solving.

With empathy and a natural curiosity for the needs of others around us, our need for techniques decreases. Where one side promotes rules, empathy as a skill is open to whatever a given person needs at that specific point in time. Addressing their specific needs often be the best way to solve a problem. As with being proactive, being empathic is a conscious choice that needs to be followed-up.

Being mindful and ever-present is another way to further increase your awareness and be more open to others’ needs.

Final words…

I hope to have brought forth the value of honing empathy as possibly the most important skill in your developer tool belt.

What are your thoughts on empathy as a valuable skill for a software developer?

Please feel free to reach out to me directly if you have any thoughts, questions or criticisms. Or leave a comment.

Cover image: sinclair.sharon28 via Visual Hunt / CC BY