Extreme Pair Programming - Guy Steele and Richard Stallman
cycle-gap.blogspot.com
cycle-gap.blogspot.com
Being somewhat introverted, I think it could be fun to do with a friend, but with a coworker who I didn't have the same level of rapport with, it would just be aggravating.
I don't think I could do it on a significant project, because I'm always making a bunch of tiny changes that I wouldn't want to have to explain/suggest. Collaboration on a single problem is helpful. Collaboration on a single work of art isn't always. Could you imagine pair painting?
If there is an imbalance in skills, pair programming will sometimes devolve into one of the developers asserting control and dominating.
The lowest-common denominator form of pair programming "Can you take a look at my code?" is very effective for finding bugs. Simply having to explain yourself can reveal issues.
I hate the term "Can I drive now/do you want to drive" for pair programming.
One thing I've observed that's a little counterintuitive is that pair programming works well for many introverts. While it's true that you're engaging with another person, it's equally true that both of you are focused on the ideas and the problem at hand. So it's not an open-ended social activity, but rather a partially social, structured activity. I find this comes more naturally than, say, making idle conversation.
Also, working together on something meaningful provides access to positive social interaction that doesn't necessarily come very often or very easily to the introvert. One can become quite attached to this. I miss it when I'm not working in a collaborative setting.
for basic/obvious/trivial tasks it's a waste of time and we split up to get through it quicker.
but for breaking new ground and finding solutions on the fly it's been very helpful.
I can understand you're concern about getting matched poorly but the experience I had with pair programming is that there is a much greater chance you'll end up working well together and a much smaller chance than you might imagine that things don't work out.
In fact, you could say that pair programming is a great way to develop that rapport with a coworker. It's not just good for the company because the work is done better, I think it's good for you as a person, because people no matter how introverted are really wired to be social.
If someone were really just a toad and would be worse than useless as a partner, chances are that same kind of person won't want to do pair programming with you anyhow.
The first time it was submitted last year, it went to Chapter 5 of the O'reilly book. http://news.ycombinator.com/item?id=34193
This time it goes to an excerpt reposted on a blog.
Speaking of which, there are a lot of good things from the early days of news.yc that should be reposted. Do we have a repost policy?
I don't want to get banned for reposting things by adding an extra ? to the end.