Live data from Hacker News

The mortifying ordeal of pairing all day

simplermachines.com

111–120 of 308 posts

Re: The mortifying ordeal of pairing all day

#111

Pair programming generates visceral responses due to it being introduced as if it were fact, which for me always triggers my spidey senses. People who didn't like it were told "you're doing it wrong" or "you didn't give it a proper chance". Dismissing criticisms out of hand only furthers distrust, regardless of the actual value of the idea. I played along and paired for awhile, but now steadfastly refuse to pair, eve…

In my experience, I've seen pairing work in the context of an experienced engineer mentoring a junior, as part of a spectrum of engagement: observing/reading, shadowing, pair programming, to then where the junior acts with more independence with some oversight, and then they're ready.

Beyond that, as a general rule it's only attractive to very mediocre engineers (who are honest enough to admit they need help).

In interviews for experienced roles, I might ask "what do you think of pair programming", and if they're positive about it there's a good chance I'll pass.

Re: The mortifying ordeal of pairing all day

#112

Pair programming generates visceral responses due to it being introduced as if it were fact, which for me always triggers my spidey senses. People who didn't like it were told "you're doing it wrong" or "you didn't give it a proper chance". Dismissing criticisms out of hand only furthers distrust, regardless of the actual value of the idea. I played along and paired for awhile, but now steadfastly refuse to pair, eve…

In my experience, I've seen pairing work in the context of an experienced engineer mentoring a junior, as part of a spectrum of engagement: observing/reading, shadowing, pair programming, to then where the junior acts with more independence with some oversight, and then they're ready. Beyond that, as a general rule it's only attractive to very mediocre engineers (who are honest enough to admit they need help). In int…

> it's only attractive to very mediocre engineers

This is a feature, not a bug!

Most people are mediocre at nearly everything. The mediocre person who knows their limitations and embraces systems to get the most out of themselves is more valuable than the mediocre person who sees themselves as a rockstar.

Re: The mortifying ordeal of pairing all day

#113

Pair programming generates visceral responses due to it being introduced as if it were fact, which for me always triggers my spidey senses. People who didn't like it were told "you're doing it wrong" or "you didn't give it a proper chance". Dismissing criticisms out of hand only furthers distrust, regardless of the actual value of the idea. I played along and paired for awhile, but now steadfastly refuse to pair, eve…

In my experience, I've seen pairing work in the context of an experienced engineer mentoring a junior, as part of a spectrum of engagement: observing/reading, shadowing, pair programming, to then where the junior acts with more independence with some oversight, and then they're ready. Beyond that, as a general rule it's only attractive to very mediocre engineers (who are honest enough to admit they need help). In int…

> as a general rule it's only attractive to very mediocre engineers

"Thing I don't like is only useful to developers who are worse than me" is a super toxic take. If you said something like that when I was interviewing you, regardless of how much pairing the company I'm running the interview for does, I'd pass on you as well.

Re: The mortifying ordeal of pairing all day

#114

Pair programming generates visceral responses due to it being introduced as if it were fact, which for me always triggers my spidey senses. People who didn't like it were told "you're doing it wrong" or "you didn't give it a proper chance". Dismissing criticisms out of hand only furthers distrust, regardless of the actual value of the idea. I played along and paired for awhile, but now steadfastly refuse to pair, eve…

Pairing works great; as long as everyone is on the same "wavelength." That's absolutely vital, and has both good and bad sides.

The good, is what the author was talking about. That team cohesiveness, that he disturbingly compared to being in a Borg Collective, is something that can't be easily quantified, but can amplify energy and positive morale. The Marines have known this for a couple of hundred years. Every Marine I've ever talked to, has described, almost verbatim, what he said. About how the squads act as a unit; almost without thinking. The results are tough to argue with. They are a highly effective fighting force.

The price can be burnout (as mentioned). When everything we do is being channeled and amplified, we have to be "on" all the time. We don't get that "five minutes of spacing out" between modules. In my case, that's absolutely required.

It's also a young person's game (like being a Marine infantryman). As I've gotten older, my personal process has become almost supernatural, but it has also become incredibly draining, and that "down time" is now no longer a luxury, but a necessity. On days that I have had some really challenging work, like chasing a pernicious bug, or setting up scaffolding for a new architecture, I can be absolutely flattened by bedtime. I feel as if I have spent the day digging trenches.

Also, I work best in my own head. I can create a pretty sizable architecture in my head, and don't need to write down a thing. That makes for very fast development, and tremendous flexibility. I can tear down an entire architectural construct, if it proves ineffective, and rebuild it, in a few minutes (in my head).

The minute I need to communicate it, however, that efficiency goes right into the bog.

Re: The mortifying ordeal of pairing all day

#115
post #95
post #84

Earlier quoted context omitted.

Pair programming only seems good when there is a large disparity in experience or seniority. The senior engineer is there to teach the junior engineer and is sacrificing a great deal of time and energy to do so. That trade off may be worth it. Pairing people with the same skill set? Mostly that’s just a waste.

It's good for a number of things: * Having multiple perspectives on design. * Having an extra pair of eyes to catch things one person might miss. * Being able to bounce ideas off each other. * Redundancy (if you are on holiday or sick somebody else still knows the code deeply) * Onboarding (it works better at getting me up to speed than any docs ever have) * Motivation (i find it's kind of like having a gym buddy). *…

> Having multiple perspectives on design.

Serious question: Why is any design happening while programming? Seems unwise to start programming before you have designed the thing you are programming.

Re: The mortifying ordeal of pairing all day

#117
I've seen pair programming work when taken only in small doses - "Hey, look at this bug with me for 5-10 minutes" types of doses. It gives you another set of eyes, acts as one step better than rubber ducking, and quickly either gives help or confirms that no, you did not miss anything, so keep digging.

But more than that just isn't a style that works for me.

Re: The mortifying ordeal of pairing all day

#118
I’ve had incredible experiences pairing.

There were whiteboards, snacks, rating each other’s themes, and jokes.

What worked very well was to pair for conceptional problems, like architecture and defining modules and their interfaces. Commit some types and pseudo-code.

We’d then break away and work at our own speed and in our own style using the common foundation.

Come together to integrate and discuss.

Pairing is also worth it’s weight in gold for debugging. It’s like a rubber duck, but doesn’t feel wrong.

It is of course of utmost importance that both parties enjoy it. Else it’s pain and a waste of everybody’s time. I had a colleague who hated it like the plague. In which case short code/review cycles worked best.

A good tool, if employed correctly. Like most things, really. And fuck management if they force it down on me.

Re: The mortifying ordeal of pairing all day

#119
I had so many negative experience pair programming that I started to find ways to avoid it.

There were the pairs the insisted on using vim[1]. There were the pairs that hogged the keyboard. I'm sure there were other things that frustrated me about it (it's been a long time since this was an every day thing now). In the end though, I opted out of pairing, first by taking a devops role at the same company that didn't require it, and later by not applying to any company that had that as a requirement.

To be clear, I'm not against pairing occasionally, but overall I prefer to be alone with my thoughts while programming -- not having to negotiate every little thing with a new pair.

If that doesn't suit the company, then so be it.

[1] I have nothing against vim, and I even know how to use it's basic functionality, but it's a huge barrier to being involved and efficient on someone's computer.

Post reply on HN