As software developers, sometimes we forget that the product that we built will be used by other people. We get too caught up in all the fancy tech involved. Too focused on creating a feature that we think is awesome but has minimal value to the end user. We forget to consider to look at things from our user’s perspective and understand how they think and feel. Empathy is what allows you to be able to understand your user at that level.
So, empathy is a valuable asset that any software developers can use to make more informed decisions in the software that they build. There are many situations in software development where empathy can become important. But before going into the details, let’s define what is empathy.
What is Empathy?
First, the formal definition:
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
Now, the informal version. Empathy is understanding and being sensitive to the experiences of others. It sounds simple, but it can get extremely difficult to do. How would you know how something feels like if you have never experienced it before?
The main takeaway is that empathy is you being understanding of how the other person is feeling without them directly telling you. It’s about being able to recognize emotions in others and being able to put yourself in the other person’s shoes.
Why Should You Practice Empathy?
There are many benefits from being able to empathize with others. Chad Fowler has written a wonderful post about empathy. Here is a non-exhaustive list of what empathy can do for you according to Chad Fowler:
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.
Where Does Empathy Fit in for Software Development?
Developing software today means you are almost always going to be working with other people. Since software development involves other people, empathy can be useful.
Empathy can help you solve problems that are important to the users and developers. It can also strengthen collaboration and improve the working space for everyone. In addition, it can help create better products because the developers understand the people who will be using them.
Although, you can apply empathy any time when developing software, here are four areas where it can really help.
1. When Gathering Requirements for the Software
Software developers should use empathy when gathering requirements for their projects. Since we’re building software for people to use, empathy will allow you to better understand the person who will use your software. When you understand your end users more, it will allow you to build software that is more suited to their needs.
2. During the Development Process
Empathy plays a big role when working with teams. It allows you to put yourself in the other person’s shoes. It also allows you to better predict the reactions of your teammates.
In addition, an empathetic developer tends to write more maintainable code. This is because they are thinking about their future self or another developer who has to work with the code they are writing at the time. Developers that lack empathy is more likely to sacrifice maintainable code for speed, which can come back and hit the project hard.
3. When Being a Leader
Empathy in software development leadership is like a balancing act between freedom and accountability. It allows you to see both sides of a technical debate. In addition, you’ll be more effective at convincing others of your point of view.
By using empathy, you’ll be able to relate to the needs of your coworkers and possibly give them the leadership they need to be a great team.
4. When We Are Supporting What We Create
Some developers are happy with throwing problems over the wall to QA. To them once the code merges successfully and can be built successfully their work is done.
It is not possible for a developer to catch every single mistake before passing their work to QA. However, developers that have empathy would try their best to minimize the messes they will create for others (QA in this case). That means the developer is taking responsibility for their own work and doing a basic level of bug checking as they develop their code.
By using empathy, you’ll be able to help support others better, which in turn makes you a more valuable team member.
I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.
What is your take on empathy in software development? Have you been on the receiving end of empathy?
To stay in touch, follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.