The Empathy Imperative: Why Software Development Needs More Heart
In the early days of computers, creating software was often a solitary activity. I'm always amazed to read the story of how Chris Sawyer designed and developed the first Rollercoaster Tycoon mostly on his own, in Assembly. But today, software development is a much more complex activity that involves multiple different disciplines and their practitioners, who all have to join forces in order to build and evolve products that delight users and bring value to the company. Think about it: any modern software product contains the fingerprints of engineers, infrastructure specialists, quality analysts, product managers, product designers, delivery managers, marketing people, data scientists and engineers, and then the heads and leaders of those areas, executive leadership, and, of course, the users (through discovery, research, interviews, etc.). Each one of these actors comes from a different background, contributes to the product using a different set of skills, and has their own needs, wants and expectations.
Building a technology-powered product that thrives in today's market is an amazingly elaborate endeavor. Anyone who's ever been a part of a successful product team will tell you that it requires an astonishing amount of hard work, dedication, creativity, resilience and collaboration. All of the people listed above need to constantly find ways to make their unique contributions valuable to the whole, and synergize towards an outcome that is coherent, valuable and performant.
As a leader in the IT consulting business, I often train teams on how to be effective consultants. I tell them that, in order to succeed at a client engagement, a consultant needs to go beyond the technical confines of their role and embrace the development of soft skills such as listening, communication, negotiation, influence, synthesis, and so on. I try to inspire them to look beyond titles, roles and names and really get to know the people behind those. Establishing connections with people around you is a key part of teamwork, and the best product teams, those who have really "jelled", rely on those personal connections to make getting work done much easier and more efficient.
However, I believe that behind all of the soft skills that you can possibly develop resides a single trait that is the catalyst for everything else. It's the glue that binds the others together. It's the enabling factor that allows you to truly relate to others, and makes all of your hard-earned skills glow with the light of honesty, truthfulness and authenticity.
According to Bard, empathy is "the ability to understand and share the feelings of another person. It is the ability to put yourself in someone else's shoes and see the world from their perspective". When you empathize with someone, you try your best to simulate how that person will respond to what you're saying or doing. You strive to bring to your mind's working memory the other person's needs and wants, and consider them as important and valuable when deciding how to proceed. As a result, your actions and words are conceived in a way that takes their effect on others into account. It's the Golden Rule in its essence: "do unto others as you would have them do unto you".
Empathy is a true transformer of interpersonal relationships. As a result, it's also a deciding factor in the success of product teams and organizations. For instance: when developers empathize with other developers, they strive to write code that's clean and readable, to document any processes that might become obscure with time (and keep that documentation up to date), and provide feedback to each other in a way that is constructive. When designers empathize with developers, they create a design system that's consistent, has clear guidelines, and is built with technical feasibility in mind. When leaders empathize with their teams, they listen to their opinions, take them into account when making decisions, and strive to remove any blockers that might be in the way of them getting their best work done. Empathy is what enables a diverse group of individuals from different disciplines to align on a common path forward, where each person makes a set of concessions, trusting that the needs of others are as important as their own.
But it doesn't stop there. Empathy is also a key factor in the success of the product itself. A product that delights users and, in return, produces value for the company is built and evolved with the user's needs, wants and pains as its north star. A great product vision communicates not only the multiple features in the product, or the results that it's going to achieve, but also how the user will benefit from it, which is the reason for its existence in the first place. In order to empathize with users, product teams need to spend time getting to know them, studying their behavior, and building a model of how the product will positively impact their lives by enabling them to solve problems in a better way. In other words, empathy is also the cornerstone of product discovery and its related activities (interviews, prototypes, A/B tests, MVPs, etc.).
Empathy is also the precursor to trust. I can only trust someone when I believe my inputs are relevant to them, and that any decision they might make will take into account my perspective as well. On the other hand, it's impossible to trust someone who clearly doesn't care about me, doesn't listen to me, and acts in a way that ignores all of my wants or needs. Trust is earned through consistent display of reliability over time. Being reliable and keeping commitments made to others is, in essence, also a way to show empathy towards them. A commitment is something that, if broken, will bring about pain and resentment. No one wants pain and resentment, so naturally an empathetic person will avoid causing pain and resentment on other by following through on their commitments.
The other (and sometimes overlooked) benefit of empathy is the expansion of the boundaries of our own mind. In order to empathize with someone, we need to incorporate their perspectives into our thinking. By doing so, we're also learning something about them that might be new to us. When I try to figure out what someone's constraints and incentives are, I may be able to use that context as another piece in the puzzle to help me better understand the big picture. This is especially true when we augment empathy with humility and open-mindedness. When I approach things with an open disposition, always considering the possibility that I might be wrong or missing something, I invite people to educate me on things that I don't know much about. As a result, I learn new things and expand my horizons.
So, my pitch here is for all of us in the software industry: let's talk about empathy. As leaders, let's foster a culture in our companies where empathy is valued and rewarded. Let's review our processes and structures to ensure we're also empathetic as an organization: recruiting knows what staffing needs and sources candidates accordingly; staffing knows what product teams need, so they do their best to fill open roles with the right skillset, and so on. As individual contributors, let's do our best to get to know the people around us and what drives them. Let's incorporate those learnings into everything we do, and allow them to shape the way we interact on Zoom calls, write e-mails and review pull requests. As is the case with anything else, change can only start in the self.