Empathy Models and Software Engineering
Reviewed by Greg Wilson / 2023-05-15
Keywords: Psychology of Programming
Somewhere on my computer there's a half-finished manuscript of a book called The Compassionate Programmer that asks the question, "What does software engineering look like if being kind to your colleagues and users is your highest priority?" I don't know if I'll ever finish it, but if I do, the work reported in this paper will be an important part of it. And if you're still stuck in a dog-eat-dog mindset and believe that the prospect of personal gain is the only way to motivate people, take a moment to read Mei Nagappan's recent post and consider this: as generative AI tools become ever more powerful, the ability to understand people's viewpoints and needs—in short, the ability to empathize—is going to become the key skill for software engineers.
Hashini Gunatilake, John Grundy, Ingo Mueller, and Rashina Hoda. Empathy models and software engineering–a preliminary analysis and taxonomy. 2023. arXiv:arXiv:2305.03941.
Empathy is widely used in many disciplines such as philosophy, sociology, psychology, health care. Ability to empathise with software end-users seems to be a vital skill software developers should possess. This is because engineering successful software systems involves not only interacting effectively with users but also understanding their true needs. Empathy has the potential to address this situation. Empathy is a predominant human aspect that can be used to comprehend decisions, feelings, emotions and actions of users. However, to date empathy has been under-researched in software engineering (SE) context. In this position paper, we present our exploration of key empathy models from different disciplines and our analysis of their adequacy for application in SE. While there is no evidence for empathy models that are readily applicable to SE, we believe these models can be adapted and applied in SE context with the aim of assisting software engineers to increase their empathy for diverse end-user needs. We present a preliminary taxonomy of empathy by carefully considering the most popular empathy models from different disciplines. We encourage future research on empathy in SE as we believe it is an important human aspect that can significantly influence the relationship between developers and end-users.