DEV Community

Discussion on: What does pair programming look like for your team?

misnina profile image

I work on a volunteer basis for a remote only organization! We just got started, but we've been working together on quite a few things.

How frequently do you do it? Daily? Weekly? Full-time?

At minimum we work on stuff while in a voice call once a week, but there are times where me and the lead will do it every day! The entire team doesn't pair program, but usually if working with myself or the dev team leader, we will be in a call.

How long do pairing sessions usually last? An hour? Three hours?

They can last between 1 to 3 or more hours. Usually 3 hours we need a break and might come back later that day, sometimes it's just a quick chat to get caught up on some late night work someone did. I should probably start keeping better track of our productivity!

Are sessions initiated on an ad-hoc basis (e.g. you just ping someone on Slack), or do you schedule/plan them ahead of time? (e.g. you decide to pair with someone on a task as part of sprint planning)

For more then 2 people, it's asked when people are ready and planned hours or a day before. If it's just us two, it's just a simple discord ping "Hey wanna work on dev stuff when I get home?". Sometimes we have clear tasks, sometimes we don't and just work separately and have each other available for brainstorming.

Do you only ever do two-person pairing sessions? Or do you ever have three or more people collaborating? (Mob programming/swarming)

Rarely, we have had 3 people working together on a code base, but usually one of them is being taught by us. We've not had more then 3 people actively deving at the same time together, but have been looking at code and talking about it with up to 5 people.

Do you typically pair with the same people? Are they remote or co-located with you?

All remote, typically pair with one same person.

What is the typical scope of task you pair on? A bug? A user story? Prototyping?

Pretty much anything that needs to be done. If we're available and feel like talking, we will open up a call and a live share session to work on any features together, or work on separate thing but have the other available for question.

What is the typical motivation for doing pairing sessions? Knowledge transfer/shared ownership? Mentoring? Code review?

Code Review and mentoring! Also just a side of social engagement, like we're working at an office together and have adjacent desks.

For the larger groups, it's more about knowledge transfer, one person and one helper teaching multiple people about the workflow or catching them up on how to use React or things like that.

Does you and your pair have specific roles during the session? (e.g. driver, navigator). Or do you keep things fairly informal?

We're very informal for the most part. When teaching, most people stay quiet while the one teaching explains everything, but that feels less like pair programming and more like a lecture.

Do you use any sort of time management techniques to add structure to the session (e.g. pomodoro)?

Nope! We just code until we either get a headache from headphones or need to go eat something.

lostintangent profile image
Jonathan Carter Author

Thanks for sharing’