Empathy-Driven Development: Is Empathy A Technical Skill?
Empathy is not usually on the top software developers’ skills list. In fact, for the longest time, people didn’t even think that empathy is a part of this industry. But there’s much more empathy involved in writing code than most think at first. Let’s dive into the world of empathy-driven software development.
Code Is Language
According to Andrea Goulet, the CEO at Corgibytes, “[…] Coding is a form of communication. Communication is rooted in empathy. So software engineers have a lot to gain from leveraging empathy as a tactical skill“. If you incorporate this type of thinking in your work, you will understand the true value of empathy for a software engineering team.
The code you write is probably completely inexplicable to most people. But the user-end of it is not. When writing code, you’re actually building an interface that communicates with the user directly. Andrea Goulet introduced empathy as one of the core technical skills and has seen great results. She is now inspiring people all around the world to take a moment and realize how empathy impacts their work in this industry.
Empathy Is A Skill
When thinking about empathy, we usually consider it a feeling. Nothing more. But actually, empathy is a skill that you can learn. It does involve feelings, but you can learn how to be empathy-driven. There’s a thing called “cognitive empathy” which means the rational process of uncovering other people’s beliefs, values etc. You don’t have to be in the same situation as someone else to empathize. You will use cognitive empathy to understand why they feel a certain way.
UX Designers and Researchers have been doing this for years. Their designs are always empathy-driven. And it’s not because they have a lot of feelings. They conduct qualitative and quantitative research to help them empathize with the target audience. One of the most important parts of building a digital product is research and usability testing. And those only focus on how well the team was able to empathize with the target user. That’s something that the software industry can use and run with. The design made by UX Specialists only provide user-focused empathy. But what about other software development specialists? Maintenance, API providers? Your empathy skills will directly impact how easy and smooth their work goes.
But how can Developers be driven by empathy? How does this skill integrate into their work? For a very long time we didn’t think that soft skills were important in the software industry. Fortunately, now, we realize that in order to build successful products, Developers need to work as a team. There’s a lot of things that require empathy. For example commit messages, pull requests, notes, documentation etc. Writing code in a way that others can easily take over is a trait of a great Developer.
Subscribe for exclusive access
That’s exactly what Andrea Goulet teaches at her TED Talks. Even if you don’t work directly with the users, you still need empathy to be a better part of your team. Empathy-based development means that you actively think about what happens with your code later, who will be working with it and who is going to use it. Problematic legacy code is not something anyone wants and it makes it that much harder to build on the codebase you’ve made. If you take those extra steps while building software, you and the people you work with will save a lot of time and become more efficient with your daily communication. And that’s ultimately how you can advance your career – by introducing those leadership and management elements into your work.
How To Introduce Empathy Into Your Daily Work?
Empathy is something you can learn and teach other people about. Your whole team can benefit from working in a more empathy-driven way. Even if it’s your first time hearing about this type of a development skill, you can still start working to get to an empathetic software development process. One of the best ways to get to this point is to push everyone on the team to take on management roles and customer service roles. By putting them out to talk with clients, they will build their communication and empathy skills.
You can also use daily software development journals or diaries. Ask everyone to shortly document their daily work and let the whole development team to read it and give feedback on whether they understand everything clearly. This will ensure that first, your teammates know how to describe their software-related work and second, that they keep others in mind while writing the documentation. This is also something that will force software engineers to start discussions about how they communicate within the project.
Creating Communication Artifacts
As with other types of software development models (like test-driven development or data-driven development), there’s always some guidelines on the best practices and how to work within the “framework” to get optimal results. When it comes to empathy in software, you need to constantly think about the communication artifacts you will leave behind. It doesn’t matter whether you’re leaving them for someone who will use the completed software or for someone who will just build new functionalities. The notes, commits, the documentation, error messages you leave behind is crucial.
When writing those you need to think about five things: who will be reading your message, the context, their needs as well as how to fulfill their needs with your message and what will be feasible in the situation you are in. First, focus on whoever might read the message in the future. Another Developer? Maybe it will be you in a few months, fixing a bug? Maybe a project manager? Then, think about why they would be needing this message in the first place. What do they need? Based on that, you can build a complete message that will answer future problems and be of an actual help for anyone who uses the software.
In this context, empathy can be looked at as a process. It’s essentially future problem-solving. You need to be understanding of the audience of your “content”. Even though, we might not put empathy as a first and foremost value in this industry, there’s definitely something to be said about its impact on software in general. The more we think about empathy as an actual, technical skill, we will notice how easy it is to implement. It’s not something you’re either born with or not. You can learn how to use empathy in your work.
Need a team to design and develop excellent software based on empathy and research? Contact us and let’s get your project started!