Ask HN: What are your experiences with pair programming?

8 points by a_imho ↗ HN
Is there a consensus on its usefulness? Could be some bias on my part but I don't see it recommended as much nowadays and it is almost exclusively all or nothing (everyone pairs).

9 comments

[ 2.7 ms ] story [ 33.3 ms ] thread
I found it pretty productive TBH I have shared my experience here http://haidrali.com/how-pair-programming-helped-me-focus-mor...
Text on the link you provided reads like theoretical benefits of working in pair programming rather than actual anecdotal experience.

I occasionally do pair programming in order to debug issues or solve problems, but anything more than that and it will drive me crazy. Whoever came up with pair programming never experienced pair programming themselves.

i've done pair programming for everything for 2 years... now in my new job i feel very unproductive without a pair
Pair programming is a tool. I loved it when I was doing it only when needed. At the moment, I have to do it everyday (company policy) and dont really like it.

Cons

- Sharing a desk for 8 hours, 5 days a week with someone who's 2 foot smaller/taller than you - there's no table height that will suit you both.

- Too bad if you dont like QWERTY, you will be a minority and will have to go back to it

- Same thing for your favorite text editor

- No own table - people will move/unplug your laptop, notes, phone when they need another table

- Every time you need to move to another work station, you have to plug in monitors, keyboard, mouse, find all the adapters, move old mugs, dirty tissues, personal belongings, ...

- Pairing with a senior sounds good in theory. Reality is as soon as you start going in the wrong direction, she/he will alert you and you end up being a code monkey that types what the other person says. You dont fail and learn, solution is almost always available. There is no room for curiosity - no dig down to see how the core libraries are implemented, no playing around 'just to see if it works'.

- You end up arguing for small details - "you should make it private", "yes, i was gonna do it at the end", "you can just type it now"

- All my passion and curiosity for exploring new stuff is dead as I have to explain why I am reading "random code"

- As you are working with a pair there is no pull requests, everything goes straight to master. It makes it hard to keep track of what was done and duplicated code shows up because the pair was not aware that some functionality was already done

Pros

5 oclock and im gone! No spending time make the code shinier or cleaner! More time for other hobbies as coding now is just a job.

You have to pair with someone for 8 hours per day?

That would cripple my productivity and drain me like nothing else. I tip my hat to you for returning after a week of that.

> As you are working with a pair there is no pull requests, everything goes straight to master. It makes it hard to keep track of what was done and duplicated code shows up because the pair was not aware that some functionality was already done

WUT? I can't wrap my head around this at all. You push everything straight to main when you're pairing? Is the person you're pairing with going over everything before the push?

I don't have to, but if you want to solo you have to justify it - more often than not, discussions lead no where and you end up looking like you don't fit in the culture.

You double check the changes with your pair when you done with the task. Most of times it is just protocol as you have been pairing all along.

Your post calls to mind this passage from Ishiguro's the Remains of the Day:

"As for myself, I cannot even claim that. You see, I trusted. I trusted his lordship's wisdom. All those years I served him, I trusted I was doing something worthwhile. I can't even say I made my own mistakes. Really--one has to ask oneself--what dignity is there in that?"

I've found it works very well when theres a mentor/mentee dynamic so long as the mentor has a mentoring mindset. But when I have something time-sensitive to deliver, I almost always stay away from it.