Pair Programming in Remote Era and Does It Affect Flexible Working Hours?

Chandan Kumar
5 min readOct 18, 2022

--

I’m a huge fan of pair programming and I do as my business as usual, I’ve been doing this for years now and I enjoy it.

Let’s try to define pair programming first before moving on to it’s pros and cons, and also is it really effective in remote setup.

What is Pair Programming?

Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently. — Wikipedia

Well, the definition is correct but, I don’t think there’s a definition to it, it varies depends on the person you’re pairing with, unlike other agile things I feel pair programming technique should also be agile and should change depending on the requirement of your and your pair.

It could be time flexibility, who drives, who navigates, how the driver writes the code, also when you are pairing with a new developer or when both have same context and more.

All these factors can change the way you do the pairing activity.

Pair Programming techniques varies in real when you do it, it’s agile like other activities in agile depending on your setup team and ways of working.

Advantages of Pair Programming

If you are reading this article I assume you know it, but still let’s list some to be on same page.

  • Two heads are better than one.
  • More efficient.
  • Fewer coding mistakes.
  • An effective way to share knowledge.
  • Develops your staff’s interpersonal skills.

Not to complicate or over explain — All these have a common reason — because two people working together and looking at each other and suggesting and sharing in the process and hence all these happens.

Disadvantages of Pair Programming?

Really? My answer is there are No disadvantages of it, but yes there may be cases where it’s not so effective.

  • The pair is not engaged in the pairing activity.
  • The people who have not tried it before might take it as waste of one person’s time, sometimes harder to communicate why we need pairing to stakeholders.
  • It requires thinking aloud and talking with pair actively, it may not suite to all.
  • We can make more like above …

Before covid era when everything was almost in office, pair programming was a little different what it’s now. There are some advantages and disadvantages which has come with the new setup.

Also when you do pair programming does it affect flexible working hours is a big question, because your working hour is now dependent on your pair’s availability and same goes other way.

Flexible Working Hours and Pair Programming.

I think this is a good topic to discuss, When you do pair programming and take things more like what XP Books says, you might end up with a fixed working hours where both the developers are available for pair.

This removes the concept of flexible working hours, so what do we do now to achieve it? also what will you do when you pair in different time zone? do you wait always for your pair to join?

This may not be very practical in a deadline and timeline driven world. If we always wait for pair things may get delayed and also what do you do in that free time?

So there are hacks, or different ways to do the pair programming

  • Work -> Share -> Repeat : Here for example if you are pairing cross timezone you can work in your timezone and once your pair joins you give them context of what you’ve already done and then your pair can continue on top of what you’ve build and at there day end they can give you context. (I assume you must be getting at-least a common slot to pair for a while). I’m not sure what we call these type of pairing, or is it really pairing is also a good question.
  • Pairing with a newbie : In these sort of situations I feel waiting for pair to join is worth the wait, because you are in process of enabling and giving context to the new person who can then contribute a lot to your work, so wait and do proper pair programming. In these cases I feel it’s always you sharing the context and navigating the flow.

There are many other ways people handles different situations but the idea is to change based on the requirements and when I say change — Change for good and with good process.

Challenges with Remote Pairing

There are many challenges to remote pairing but I think it’s been a while and people have already figured out how to handle these problems

  • You never know if your pair is paying attention.
  • You take breaks separately so you cannot discuss about the problem in breaks.
  • Finding a good tool to pair.
  • Hard to communicate same thing over remote calls.
  • Internet connection issues (am I audible?)

There could be more but all of it has solution now, there are a lot of good and great tools available to pair, you can trust on your pair and also ask if you following or should we take break?

This topic just came in my mind when I was finding a topic to write, so some of my thoughts are not very well put here, but you can add your experience so I can learn from them. Thanks for reading.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Chandan Kumar
Chandan Kumar

Written by Chandan Kumar

A Devil’s Advocate and a Software Developer

No responses yet

Write a response