Ask HN: How to learn to stop worrying and love pair programming?

8 points by wwwater ↗ HN
At my work we have to do pair programming for some time. For me it seems even worse than being interviewed. To make myself concentrate is very hard. And it seems that this pair programming is exactly the opposite of what programming is all about, i.e. to become temporarily unobservant, forget about everything else but the problem to solve and the code. So I wonder, are there people who can truly enjoy pair programming?

11 comments

[ 3.0 ms ] story [ 34.2 ms ] thread
Pair programming is great to get junior people or people just coming in up to speed.

If you put me and another senior next to each other to use just one computer and make us do that consistently, we would both quit the job by friday. Pair programming is a great way to cut your productivity in half (2 people doing the job of one). We trust each other anyway, there's no point in watching each other like hawks. We can just do our own thing and then CR the other guy.

Pair programming is another one of those schemes employed to make people feel pressured into not slacking under the pretense of it being new and edgy and kinda cool. Its great, nobody ever slacks. You just burn out within months.

If you don't think pair programming is retarded, please ask a welder how he would feel about pair-welding. Complete and utter bullshit.

^ I'm talking about professionals. Not brogrammers. Not node.js clowns. Those people could all use some supervision. But sticking two great engineers with lots of experience together like that will jsut reduce productivity and will to live.

Nose.js clowns?
node.js
Sorry phone typo. Question is why you associate node.js with being a clown?
I'll let the paradigm and the code speak for themselves.

Other than that, I did not say that all node.js engineers are clowns. I said that clowns tend to use crap like node.js over better alternatives.

Don't ask me for better alternatives without saying what you want out of your tool, though. Node.js does a little of everything but is pretty weak at all of them. Now, if your main requirement for a programming language is that it better be as crappy as your frontend technology, then node.js is the only choice you've got :D

Don't worry I'm well versed in the better alternatives was just interested in the correlation. And sometimes at a job you have to use tooling you wouldn't necessarily choose yourself.

I like your welder analogy it priceless! Pair piloting works well I heard.

I've done pair programming. With the right partner it is productive and produces better code. The person at the keyboard is at a disadvantage because the partner has more "think time". Anyway, I found it pleasant.

The KEY problem is management. My partner always wanted to type so we ended up with me doing the thinking/review while he worked out the syntax. When we got our performance reviews my partner got a raise and I got a bad review. My manager believed that he did all the work and I just sat around talking.

Beware the 'review' trap...

So you could concentrate and think despite that there is another person sitting next to you and waiting when you say something?

This part remains me too much of an interview: somebody sitting next to you and waits in the real time when you say something. It is too much pressure for me, somehow.

We both knew the task, having designed it before we started. It involved networking so there were standards we had to follow. He wasn't 'waiting', just writing code. However, writing code takes up a lot of head-space. My portion involved things like real-time code review, discussing design decisions such as where to check for edge cases, etc.

There isn't much benefit to pair programming. It does catch errors sooner. It does help structure code better. It does eliminate typos the compiler can't catch. So it does have benefit. But I think the cost of two programmers does not justify the benefit.

The real problem is 'shared credit'. Remember those school projects where 2 or 3 people worked together? I had one in grad school where I ended up writing almost the whole project myself but we all got an 'A' grade. Management has no way to figure out how to allocate credit. This is a problem in shops where they put people on a scale of 1-5 or some such nonsense. If your shop does this, do NOT pair program.

I agree with another comment here, you are not supposed to love pair programming. It's an attempt to put pressure on you. Just never do it, talk to your manager. If they are not happy with your decision, leave, as you are the one to suffer the consequences, not them.
I also see it as an attempt to put pressure on me, but I know, that there are people who truly like it. So would be interesting to understand their point of view.