Empathy and Pair Programming

The views expressed are my personal opinions and is in no way to harm other.

First few questions:

  • How many times have you lost your temper during code reviews?
  • Do you feel your contribution is the best/worst in the team?

If yes, please follow along.

Emapthy: the ability to understand and share the feelings of another.

# source: oxford

Our industry requires continuous interaction with our coworkers even though the output or product that we produce is non-tangible. Why?

The problems our industry is trying to solve is highly coupled with interactions of humankind.

  • not able to get a cab. Solution: Uber/Ola/Gojek/Grab
  • forgot your wallet, or don’t have monetary change. Solution: Paytm/UPI/Gopay/Grabpay
  • want to gift a book to someone, but is not available at local bookstore. Don’t worry, you can probably get it from Amazon and it will delivered to you within a day.

All of these experiences that tech enables us, requires problem solvers to connect with people experiencing these problems aka EMPATHY.

But why is it required for devs? isn’t PMs/Sales/Marketing/Researchers are suppose to connect with people so that us introverted devs can stay happily in our caves?

Great products or great solutions requires great leaders and great teams.

How do we define great team?

If you google this, most of the answers will include: A team which communicates well, feels at home with their peers, everyone contributes blah blah..

A team, is not siloed groups.
We can’t and shouldn’t differentiate ourself as dev team, qa team, PM team, sales team within the team.
Team consist of everyone, dev, QA, PMs, sales, marketing and anyone else who work with you on a regular basis.

Now how to achieve these standards, where we communicate well, feels at home with among our peers, nobody over-contributes or under-contributes?

I believe the solution might be an effective pair programming, because it induces empathy.

In my experience with pair programming, it made me more connected to my co-workers because of continuous engagement with him/her. I know and understand what he/she is going through. I can quickly fill-in for them during their absence or when they are having bad day, and I have assurance that they will do it for me.
Coming full circle, original definition of empathy: Ability to share and understand feelings of another.

Why I think code-reviews are not good at encouraging empathy?

  • It doesn’t encourage face-to-face/sync communication. (I’m not saying it doesn’t encourage communication).

Many folks would want to do it async and over comments on PR. Even if it’s on call, I believe it will hardly last more than 1-2 hours.
In my experience it had led to lots of misunderstanding and clashes among peers.
The reviewer gets frustrated by repeating same thing every-time and devs gets frustrated because of context switch and redo/undo they have to do whenever there is a comment on a PR.

  • It’s not suitable for company or org, even though it’s effective for open source development.

IMO, all the other benefits (like no-code reviews, faster checkins) which pair-programming provides are secondary.

The primary outcome and the goal, for pair programming should be:

I feel like I’m part of a team where I know and understand everyone, and thus can collaborate effectively.

Us humans have inherent need to connect with people around. Even the most introverted person needs some social interaction.
P.S. I consider myself ambivert, inclined toward introversion.

Written on January 2, 2021
<< Back to Blog Home