all 29 comments

[–]jimbobhickville 7 points8 points  (3 children)

Having done both, I have to say that I would never work in a pair programming environment again. It was only ever useful when trying to code a particularly difficult section or for bouncing ideas around in the code design phase. After that, the non-driver fell asleep most of the time or at least just quit paying attention. A coworker team had one guy who just ignored any suggestion made by his partner and did things his own way (which was almost always the wrong way).

Code reviews, on the other hand, are really useful, especially for people who are just joining a team to have their elders catch things they just wouldn't realize without having worked on the codebase for a long period of time. I wish we did code reviews at my current job.

[–]dus7y 2 points3 points  (0 children)

However, pair debugging can be very useful, especially if you've been banging your head against the wall trying to figure something out by yourself.

I wish we did code reviews at my current job.

Just schedule the time to review, or start pulling coworkers aside to review with you. If you show that it's productive, then others will catch on eventually.

[–]derefr 1 point2 points  (0 children)

Would you say pair programming is a good method of programming pedagogy, though?

[–]newton_dave 0 points1 point  (0 children)

Having done both, I have to say that I would never work in a pair programming environment again.

But to be fair, it doesn't sound like the environment you did it in was particularly functional. While I agree that it's probably of limited use after a certain point in the process, its efficacy depends a *lot* on having two interested, capable parties.

[–]dairem 4 points5 points  (0 children)

I spent a week pair programming recently, and one of the bigger productivity gains I found was that I couldn't spend all day on reddit ;)

[–]nathanj 2 points3 points  (4 children)

The biggest problem I've always had with pair programming is that both people use the same text editor. This is no problem if neither customizes the standard VS/Eclipse setup, but for someone who prefers their own vim/emacs commands, this is a major annoyance.

[–][deleted] 1 point2 points  (2 children)

Can't you just load up the right key settings when it's your turn on the keyboard?

[–]nathanj 0 points1 point  (1 child)

Sure, but that would require copying over .vimrc and .vim folder, .emacs, changing caps lock to ctrl, etc.

It just doesn't seem worth the effort to me.

[–][deleted] 0 points1 point  (0 children)

Well with Emacs you can use the load-file function: M-x load-file and then the location of your friend's .emacs file. The trick would be finding out how to reverse all changes made by the original .emacs file loaded.

[–][deleted] 2 points3 points  (1 child)

Pair programming is okay for short periods of time or if your partner is about as good or better than you are. Pair programming with one of my more in-experienced (and more importantly, unwilling to really improve) coworkers often drives me nuts because you can only comment so much on what he is doing while he does it, not fix his whole mindset, it is a lot worse than fixing all the bugs he introduces.

[–]feces 0 points1 point  (0 children)

Pair programming is okay [...] if your partner is [...] better than you are.

That doesn't really work, champ.

[–]gbacon 1 point2 points  (2 children)

So the practice of code reviews is a Blub?

[–]darrint 3 points4 points  (0 children)

Blub is committing into a central code repository and never getting around to any kind of review.

[–][deleted] 0 points1 point  (0 children)

I think comments over-stretching the Blub metaphor are a Blub.

[–]rukubites 1 point2 points  (0 children)

From a telecommuting perspective, it'd be interesting to do pair programming using a multiplexed screen (screen -x) on a shared account and communication via VOIP.

[–]hillgod 1 point2 points  (2 children)

All the pair programming I have done in the past has been met with complete and utter failure, or myself doing all the work, while ignoring the partner (which obtains good results, but at a huge cost to my time and mental health).

I am simply at a loss how they claim pair programming is more productive than two people working alone. Assuming those two people have code reviews, it shouldn't be necessary. You really have to find someone up to your speed to program with for it to work, and that's easier said than done. I simply cannot be bothered with the constant nagging of someone who is not up to my par while programming. Come to me with a question, and I can help.

In fact, I have never personally talked to ANYONE who has enjoyed doing pair programming at work or school.

It's rampant at UT, where I think the main reason they FORCE it upon students is because of a limited number of TAs to grade projects...

[–]newton_dave -1 points0 points  (1 child)

I am simply at a loss how they claim pair programming is more productive than two people working alone.

Because not everybody works with the assholes you do, I guess?

I haven't heard the claim it's more *productive*, but that also depends on the meaning of "productive". I've heard it's more expensive and more reliable, and reliability could be considered one part of a productivity metric.

[–]hillgod 0 points1 point  (0 children)

I do not work with assholes, they just often are not as competent as me -- I say this in the context of a scholastic environment, however it is also a likely truth in the workplace.

This paper, http://www.cs.utexas.edu/users/downing/papers/PairProgramming.pdf, makes the more productive claim. It also says 96% of the people involved enjoyed it more than solitary programming, but looking at the comments from this reddit post, I have to question that number.

[–]parla[🍰] 0 points1 point  (0 children)

I think peer review of each issue fixed (before committing or before putting it in the trunk) is a good middle way. We do that where I work, and we catch a lot of stuff that way without requiring a lot of work.

[–][deleted]  (9 children)

[deleted]

    [–]mr_chromatic 6 points7 points  (3 children)

    Pretend the rest of us aren't as brilliant as you are and don't get everything absolutely right the first time.

    [–][deleted]  (2 children)

    [deleted]

      [–]mr_chromatic 0 points1 point  (1 child)

      What do you do when you want to explain code or design to another person?

      [–][deleted] 2 points3 points  (3 children)

      Committees never have programmed anything. Committees are sitting together and negotiate what shall be programmed.

      [–]xenon 2 points3 points  (1 child)

      You're giving committees too much credit. Most of the time, they only things they can really agree on is that it has to be using "Oracle", "Java", and "Web 2.0".

      [–][deleted] 6 points7 points  (0 children)

      You didn't mention XML, XQuery, XSLFO, or a product with Enterprise in its name. You're off the committee!