Empathy is a tool every Software Engineer needs in their soft skill set. Many of us unconsciously display empathy. But if we actively chose to use it, it has the potential to become a superpower.
This article will provide you a deeper understanding of what empathy is and how to better integrate it into software development.
What is a soft skill?
Soft skills are non-technical abilities such as communication, logical thinking, problem solving, teamwork, and empathy. These emotional intelligence skills are valuable as a Software Engineer.
It is very hard to learn and unlearn skills such as these. You cannot necessarily read a book or watch a tutorial and immediately have improved communication skills. Some of these skills are innate. They are built over the years and take time and practice to develop.
Soft skills can play an important role within the hiring process. The good news is that you can work to further develop these skills.
What is empathy and why is it so important?
“Empathy is seeing with the eyes of another, listening with the ears of another and feeling with the heart of another.” – Alfred Adler
Empathy is a deeply human emotion. In the sci-fi novel, Do Androids Dream of Electric Sheep? empathy is the main detectable trait between androids and humans.
Empathy lies at the heart of emotional intelligence. It has the ability facilitate our awareness of our personal emotions, handling interpersonal relationships and creating stronger bonds (Source).
Empathy vs. Sympathy
It is vital to distinguish between sympathy and empathy. Sympathy can arise in the form of feeling bad for someone else's situation – “Sorry for your loss.” Empathy is sincerely visualizing yourself in the shoes of the person who has lost something.
"Empathy is a choice and it's a vulnerable choice. Because in order to connect with you, I have to connect with something in myself that knows that feeling." – Dr. Brené Brown
One of my first gigs out of university was in a Customer Service role for a health insurance provider. We were required to go through a training program before speaking with members over the phone.
I distinctly remember the emphasis they put on understanding empathy and how it is not the same as sympathy. They pulled up YouTube and put on an animated short with audio from a talk by Brené Brown.
This video has stuck with me and helps me remember the importance of empathy.
In the video, Dr. Brown mentions the four qualities of empathy outlined by nursing scholar Teresa Wiseman:
- Perspective taking, the ability to see the world as others do
- Staying out of judgement in these perspectives
- Recognizing the emotions in others and relating
- Communicating with that emotional understanding
How to apply empathy as a Software Engineer
Empathy for Users
Having empathy for users can take many forms. Empathy can come in to play when thinking about what your users' needs and wants are. Jumping into their perspective can give you an entirely new outlook.
Accessibility requirements are essential and require a good amount of empathy in a similar fashion. Any type of user should be able to use your application.
Envision yourself navigating and operating a website only able to use limited keys such as tab, spacebar, and enter. Users with visual impairments that are unable to use the keyboard and mouse can use screen readers to audibly navigate through web pages. Test out your site with a screen reader to shine a new light on this perspective.
The best way to ensure that your application is accessibility-friendly is to be compliant with the standards set by Web Content Accessibility Guidelines (WCAG) along with Section 508. Study the guidelines, become familiar with the requirements, and implement them into your code.
Now imagine seeing the world as a color deficiency individual. You may be unable to decipher an error messages from a success message if you are red/green color deficient. This falls under Level AA 3.3.3 - Error Suggestions, and there are a wide array of situations to consider under this criterion alone.
To rate the accessibility (also known as a11y) levels of your website or app, run it through an audit by Lighthouse. The audit utilizes the a11y guidelines for testing and displays a rating out of 100. It provides direct feedback regarding what you can change to improve your score. Additionally, there are scores for "Best Practices", "SEO", and "Performance".
UX/UI Designers are no strangers to using an empathetic skill set. UX Researcher is a role almost entirely based on this idea. Designers remind themselves who they are creating for.
Creating Personas is a great way to put yourself in the place of users. Personas are boiled down versions of users, including their behaviors, needs, and learned experiences. Personas are created by collecting data from users and summing up correlated traits.
According to Interaction Design Foundation,
"Collecting insights about the social and cultural backgrounds of the users, their psychological traits, their feelings of frustration, and their goals will help you develop a broad knowledge of the users."
This all may seem front end-oriented, but empathy can be applicable for back end engineers as well. Envision how you’d like your data to be stored, how secure you would like that information to be. What information would you like saved to save yourself precious time in the future (or what would cost you lots of time, in case of a security breach)?
It all comes back to imagining yourself in the place of others. Actors must be exceptional at empathizing! What better way to serve your users than to imagine yourself as them.
Empathy for Teammates
Teamwork and empathy go hand in hand. Strong relationships can be built upon a foundation of listening and understanding, without passing judgement.
Having an understanding of what your teammates are feeling can facilitate supporting each other and grow together as a team. Allow teammates to vent to you with the understanding that you are not necessarily here to fix the situation but that you can listen (without judgement).
Use emotional empathy to absorb and mirror the feelings others are going through. Imagine a teammate being strongly reprimanded for a mistake they made. What emotions would you be feeling if that were you instead?
Having this emotional comprehension will allow you to better communicate with them. It may be the very support they need at that time. Emotional empathy can move you to lend a helping hand.
Empathy can become your superpower when dealing with difficult interpersonal situations with coworkers. Try to observe different perspectives and why someone may be acting out of anger, fear, or sadness.
Perspective taking (using cognitive empathy) is a wonderful method to navigate contentious situations in the workplace.
Imagine your coworker has been working extremely hard the past few years to get a promotion, only to find out after their review that they received neither a raise nor promotion. You could use cognitive empathy to take the perspective of your coworker to recognize how disappointing that may feel if it were you.
Empathy is speaking to others how you'd like to be spoken to. It requires mindfulness. Think of empathy as a tool the next time you encounter a difficult situation at work, but also in your day-to-day conversations.
"Between stimulus and response there is a space. In that space is our power to choose our response" – Viktor E. Frankl
Empathy for Future Engineers
There are many ways we can display compassion toward future engineers when they have to interact with code we’ve written.
Many engineers have found themselves in legacy projects, entering a brand-new codebase, or even looking back at an old personal project and they feel a sense of logical bewilderment. More so if there was nothing left behind to explain some of the complexities and logical decisions that were made.
If you could put yourself in the shoes of that future engineer looking at your code, what would you want to see left behind?
The best way to implement this is to write readable code. You can do this by limiting abstractions, avoiding complex logic, and using clear naming conventions.
Do your best to break things down and organize your files. There are plenty of great tips to help you write cleaner code in Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin.
Documentation is also a kindness to future readers. Whether that is crafting an informative README file or writing how-to's. Leaving useful comments in your code and detailed commit messages can also be helpful. Most of us can’t recall changes we committed months ago ourselves.
Leaving behind a trail of textual breadcrumbs can make the life of the next person who stumbles across it that much easier – and that person might even be you!
Empathy for Clients
Empathy can help you connect with your clients and assist in delivering the best product to them. Communication comes largely into play here, which goes beyond words involving your tone, body language, and delivery.
You can use empathy to fully visualize the brand and comprehend what the client themselves may be facing on their end. It can be a useful tool to convince others of your point of view if you can first understand theirs.
Utilize cognitive and emotional empathy when dealing with difficult situations with clients. Picture why they might be upset to have their product delayed, frustrated users or monetary loss.
Have curiosity when working with clients. Go above and beyond to learn more about the client. If you come from a place of curiosity, it will iterate your interest and a deeper understanding of the product.
Use your best listening skills when speaking with the client. Don't miss the details and your client will feel heard, appreciated and more satisfaction with the product.
Empathy for Leadership
Some of the finest leaders are the ones who remember what it was like to work their way up from the bottom or who can foresee themselves in other positions. Empathetic leaders establish strong connections with the individuals under their direction.
The best managers I have had in the past have displayed a concern for what I was feeling and what I may need.
Empathy means understanding impostor syndrome and checking in on the mental wellness of your employees. It's much easier to open up to someone who you feel 'gets it'. When you feel understood and respected, you’re more inclined to work hard and give back a mutual level of respect.
Leaders should have a strong level of emotional intelligence. Who wouldn't want a manager that seems approachable, self-aware, nonjudgemental, and understanding?
Emotional intelligence can be developed with conscious efforts. Being able to describe your own emotions will give you the ability to better resonate with what others are feeling.
Instead of saying "I'm feeling anxiety", go deeper. Anxiety is not quite an emotion, so what does it actually feel like? The heart of the emotion may really feel like sadness, shame, guilt, frustration, or embarrassment. Practice self awareness and labeling the emotions you are feeling. This is not isolated to those in leadership, it goes for everyone.
Cultivating empathy can give you the power to help motivate those around you.
"Empathy does not require that we have been through the same thing as another person, simply that we meet them where they are now." – Andy Puddicombe, former Buddhist monk and Headspace co-founder
One of the best skills you can develop as an engineer is empathy. You can work on this skill by trying to establish an unbiased point of view in all communications.
Practice shifting your perspectives and observe the changes in your interactions. Improving this soft skill will be a catalyst for positive change at and outside of work.
I hope this article has provided insights on situations where you can start integrating more empathy into your day-to-day routines.
Thank you for reading!
I am a writer passionate about programming, user interface engineering and design. Find me on Twitter and LinkedIn.
Cover Photo by Josh Calabrese on Unsplash