Skip to content

1.2 Teamwork

1.1 Communication | Home | Next: 1.3 Development Process


Empathy: A Software Developer's Superpower

Empathy is understanding and being sensitive to the experiences of others without those experiences being explicitly communicated. As Dr. Brené Brown writes, "Empathy is a strange and powerful thing. There is no script. There is no right way or wrong way to do it. It's simply listening, holding space, withholding judgment, emotionally connecting, and communicating that incredibly healing message of 'You're not alone.'"

Empathy plays a key role in four stages of software development:

  1. When gathering requirements: By using empathy, you'll have a better understanding of the people who interact with your software. Software is an expression of an idea—empathy is a required ingredient for successful software.
  2. During the coding process: Code is another form of communication. With empathy, you're more likely to build maintainable code and predict the reactions of your teammates. You'll write cleaner code with proper documentation.
  3. While supporting programs we create: Empathy allows a developer to comprehend what it's like for someone else to clean up their mess, and in turn makes them want to cause fewer messes for others. It helps the developer take responsibility for their own work.
  4. When being a leader: You'll be more effective at convincing others of your point of view while also being more likely to see both sides of a technical debate.

Other Teamwork Essentials

  • Keep low egos. The best solution wins, not "my solution."
  • Be an active listener. Hear first, think second, respond third.
  • Be a good mentor. Actively guide newcomers and help team members grow.
  • Share knowledge. Document, give tech talks, pass on experience through code review.
  • Be constructive. Criticism must come with suggested improvements.

Sources

  • Simple Programmer — How Empathy Can Be a Software Developer's Superpower: https://simpleprogrammer.com/empathy-software-developers

1.1 Communication | Home | Next: 1.3 Development Process