Empathy is a trait of good developers that is not often discussed. It’s one that I learned and honed through creative endeavors and has served me well in my roles as a developer. While discussing what makes a good developer on Hacker News, I wrote a comment regarding empathy. A lot of folks identified with it so I wanted to share it here as well. You can find the full discussion here.
“One quality of good developers not often brought up is empathy. It’s absent from this article and all of the comments thus far.
Empathy is quite important in a vast array of creative endeavors. Development is not an exception in my opinion. It’s the trait that allows developers to know what a person needs even if it isn’t what they’re asking for.
Being able to put yourself into the shoes of another busy person working in a domain you may have little familiarity with is difficult. Trying to solve technical problems for that person when they are not technical is harder. Efficiently using that person’s time and getting to the root of what the actual problem is, not necessarily what they ask you to do, is harder still.
Getting to the point where you know how to ask the minimal amount of questions to understand the actual problem that needs solving takes practice and experience. It requires good listening and comprehension skills, and comes from caring enough in a person’s problems to get to the root of the issue; an exercise in empathy.
By getting to the root of the problem you end up with better, more useful software and solutions, with less iterations. Even having the conversations to achieve these understandings requires knowing your tools well enough to gauge what’s possible, an innate curiosity to care enough to dive into whatever it is that needs solving, and enough experience to know when to say “yes,” “yes, but,” “no,” or “I don’t know,” to ideas. And to not only say it, but mean it, and know it to be true.
Additionally, developers who are good at actually solving problems for people must be creative enough to improve upon that situation without being told how.
All of these traits are excellent separately, but combined produce developers who solve problems and create value, not developers that just write code.
Empathy is a trait of some of the best developers I’ve ever met or worked with and a lack of empathy has been a strong indicator of mediocre, bad, or hard to work with developers.”
Agree? Disagree? Let me know in the comments or hit me up on Twitter @randomdrake.