All writing Technical Empathy

Empathy Opportunities for Software Developers

By Andrea Goulet

Originally published at LinkedIn

Empathy can improve code quality and collaboration, if we know where to look. Photo: lunarts_studio

Empathy is essential to effective collaboration. Throughout the course of our day-to-day work, there are many opportunities to use empathy to improve our code quality and collaboration. The trick is knowing what to look for. Here are five different ways that you can add empathy to your daily development practice.

Decisions

Notice when you’re asking yourself “What should I do?” Moments where we are weighing options, making judgments, or figuring out our best next step are excellent opportunities to deliberately engage with empathy to inform our actions.

  • While you’re coding, you regularly run automated tests. While you’re waiting, you’ve made it a habit to spend a moment to check your personal capacity. You notice your teeth are clenched, indicating distress. You spend a moment to take a deep breath and consider what’s going on.
  • You notice yourself deliberating as you try to decide which large language model to incorporate into your application. You remember that in addition to making sure it’s functionally compatible, you should also consider ethical implications.
  • As you’re working on a block of code, you notice that the method you’re working on is getting pretty long. You know that using an extract method refactoring can lead to a more maintainable codebase, but you’re debating whether or not it’s worth spending the time to do that now or leave the block of code as it is.

Friction

If you’re surprised or frustrated, perhaps by another person’s reaction, pause to collect yourself and consider how you could engage empathy in your own reaction.

  • In a meeting, you find yourself drifting off and struggling to pay attention. You notice that you’re hungry and that’s likely contributing to your distraction.
  • At a team event you’re laughing with your co-workers. You think things are going great but then one person stops laughing and becomes noticeably upset at a comment you made. You have no idea what you did and you’re embarrassed. You’re tempted to make a snide remark in your defense, but you decide to collect yourself instead so you can learn and attempt to repair your relationship.
  • You’ve been banging your head against the keyboard for hours trying to figure out why your code won’t compile. You start to notice yourself drifting into contempt and blame, muttering “What idiot wrote this?” under your breath. You recognize your attitude is counterproductive and decide to spend a moment collecting yourself. Instead of disparaging the person whose code you’ve inherited, you consider some of the constraints the past developer might have had instead.

Relationships

Choose a specific person to be the focus of building rapport and trust. Use empathy to bring more intention to your interactions.

  • It seems like every time you interact with a particular person on your team you walk away feeling defensive and resentful. You recognize this stress is hurting you, so you take a moment before you meet with them to increase your personal resources by doing a quick compassion exercise.
  • A member of your team speaks in a thick accent and makes grammatical errors because English isn’t their first language. You notice yourself losing patience frequently when you interact with them and recognize you’re more easily irritated when you feel time pressure. You think of ways you could be more patient in the future.
  • A colleague comes to you and expresses their frustration about something that happened on their project. You normally panic in these situations because you don’t know how to help. You recall a question structure that could reduce your cognitive load, help your colleague feel validated, and give you more data: What does support look like to you right now?

Messages

Pick a message you regularly develop and deliver, such as an email, code review, commit message, etc. As you’re crafting it, engage with empathy to improve your communication.

  • You’ve decided to intentionally use empathy to help you write better code reviews. You look over code reviews you’ve done in the past as a way to look for patterns and explore what you can do to be both clear and kind.
  • An executive stakeholder has asked for an update on a feature you’ve been working on. You recognize in this situation, you’ll likely need to communicate differently than if you were talking to another developer on your team.
  • You notice that your documentation is constantly out of date. You think about why you put this task off and consider your motivations. What might incentivize you to make updates more regularly?

Habits

Select a behavior that’s getting in the way of your ability to collaborate effectively, such as interrupting people, not speaking up, saying “yes” to requests by default, raising your voice, etc. Notice when it happens and use empathy to evaluate your actions. This might start with a reflection after the fact and then move to catching yourself while you’re doing it, then catching yourself before you act on it.

  • You notice yourself yelling at your co-worker. You’ve identified that you use this behavior pattern when you fear you’re not in control. You catch yourself, stop yelling, and take a deep breath to manage your distress.

  • A peer on your team asks you to stay after work to help him with a problem. Your instinct is to immediately say yes, but you’ve identified that your fear of rejection is preventing you from setting healthy boundaries. You check in with your priorities and decide to decline because your anniversary dinner tonight takes precedence and you don’t want to be late.

  • You’re asked to provide an estimate for implementing a new feature. Your first instinct is to say you can get it done in just a few hours, but you pause and remember that you have a strong optimism bias. You spend a moment reconsidering the situation.