My Authors
Read all threads
Nothing wrong at all.

But I think a high percentage of people replying to @dhh here have a wrong idea of what pair programming is.

I've done it for 8 years straight and now I rarely pair.

Here's my personal experience.

[thread]

Some background for context:

I was a consultant, dev and tech lead at @thoughtworks for 8 years. Pair programming is the default for TW teams, including client people.

Teams have freedom to tune the practice to what works best for them, here's how my teams did most of the time:
Pairing was the default.

Sure, that are some activities that don't benefit much from pairing, but the overhead of discussing on a case by case basis was just not worth it. So we paired on everything except when it was obvious that we shouldn't pair, which rarely happened.
This doesn't mean that we paired 100% of the time.

Pair programming is exhausting and frequent breaks are necessary. We used the breaks to rest, get coffee, chat to other people, do personal stuff, etc
It was also common to save about 1 hour everyday to attend to personal work related stuff: email, 1-1s, interviews, other meetings, etc.

That would give us about 80% of the time pair programming and, with the context switching, about 4 or 5 hours of productive focused work.
We switched pairs frequently.

How frequent would be different for every team/project but I think every 2 days was what worked better most of the time.

This means that every 2 days I would work with a different person and/or on a different user story/task.
Unless it was required or the obvious thing to do (both rare), we avoided "strategic pairing" - choosing specific people to work together on specific tasks.

Personal preferences would sneak in and the overhead of discussing was just too high.
What worked best was just blindly following some agreed upon rule like a pairing matrix.

Everybody pairs with everybody on all tasks. No drama. Image
We didn't strictly followed any pair programming style.

We loosely switched from driver-navigator to ping-pong to whatever according to necessity or mood.
And while some pairs switched who has the keyboard in a more structured way, eg using pomodoros, most pairs would switch in a more loose and organic way, following necessity, mood, or just because someone had the keyboard for too long.

The import thing was to switch often.
This is my experience.

And this how I feel about it:

It can feel like people watching over your shoulder, just awful. I think it happens when the pair is on a teacher/student mood and not a "working together" mood.

I still get nervous and sweaty in those situations.
It is exhausting.

It’s incompatible with the music-on-headphone habit, of course.

It demands all your "people skills”. Requires more maturity and less ego.

But as any other skill, it gets better with time and practice.
And if you invest the time and support the practice, you should get:

There’s no better way to share knowledge: the tech, tools, tricks & shortcuts and the business/domain.

You get live feedback on your code - no need to wait for review or no need to review at all!
And the main thing that I think people disregard, because they never really experienced it: it makes it feel and work like a team.

The work belongs to the team, not to the individuals.
This means that everybody knows about everything and can do everything - this might take some time, of course, but is 100% possible.

This means it is a great investment for growing people.
I don’t pair much anymore because is not part of my new company’s and team's culture.

Personally, it is more comfortable.

But I thing it would make the team multiple times more effective and would tremendously benefit the organization.
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Guilherme Froes ✏️

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!