DEV Community

Discussion on: Does programming require empathy?

Collapse
 
ben profile image
Ben Halpern

Regardless of verbiage, I'd say that the answer is an emphatic yes. I'm not sure where empathy ends and other associated traits start, but in general yes.

However............

Having "empathy" doesn't make up for lack of experience, discipline, and other problem-solving skills. Software development requires a lot of different skills.

I'd also add that this discussion is usually framed as a counter to a, perhaps, stereotypical idea that programming is "purely logical" or something like that. Emphasizing empathy as a valuable software skill helps attract folks who might not self-identify with other skill sets. There are many paths towards software excellence and it's easier to venture the path if you think you belong.

I can tell you this, it's a lot easier to express your own empathy if you have a mastery of the tools you are using. I don't really have any experience in operating systems development. All the empathy in the world probably wouldn't help me before learning the lower level tech. Different story on the web. I have the initial skill sets where an empathy for the user/developer goes far.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I wonder, if when it comes to technical concepts like OS design, whether empathy would imply being able to understand an OS designer? This is the part that I'm unsure about the word empathy. If you're dealing with logical and rigid structures, does empathy imply you understand them as well? Without that, you won't be able to get inside the mind of the person coding it.

Definitely though, empathy is certainly not enough to be a good developer. It cannot make up for a lack of other skills.

Collapse
 
zhu48 profile image
Zuodian Hu • Edited

I worked on RTOS and driver code in college for a robotics competition. In the 3 or 4 years I did that, I noticed one of the biggest driver for how long your code survives in the organization is how easily other people can use it. "Use" has a lot of different meanings depending on the organization, and for my robotics team, it meant "compile", "test", "extend", "modify", "understand", and "maintain" in various proportions to different people. Any combination of the above would require some exploring into other people's heads. How will the way the API is structured drive people to use the code? How will the way the documentation is written drive people's understanding of the code? How will the implementation drive people to maintain the code? So it's just like any other software, except an OS developer's user base is a very specific group of people. Things like well written documentation and consistent, understandable style are just as important as in any other software project.