Sunday, September 23, 2007

Programming is mostly a solitary activity. It's typically just a man (or woman), a computer, and a nearly limitless supply of furry porn. This is how my ancestors programmed computers.

Recently, however, a programming technique called "pair programming" has become fashionable. It's a simple idea, pairing together two programmers, who work as team. One person types while the other person thinks and guides. This is supposed to result in all sorts of benefits including higher quality code (two brains are better than one) and having more than one person familiar with how it all works.

On my most recent project, I've been doing pair programming with one of my coworkers, Ralph. We've been doing this for several weeks now. Since we both work from home, we've been on the phone together all day long, using collaborative desktop sharing software to let us jointly stare at either my computer desktop or his. We're essentially joined at the ear.

Ralph and I already had a fair amount in common. We're both about the same age. We're both dads, and we're both Jewish, although he's way more Jew and I'm much more Ish. This pair programming effort, however, has bonded us in new ways.

First off, we've had to synchronize our schedules. To maximize the efficiency of our work day, we take lunch at the same time, we refill our coffee cups at the same time, and we take dumps at the same time. (Granted, due to the mobility of my cordless phone and headset, I could take a dump WHILE Ralph "drove" the keyboard, but a modicum of decorum exists even among computer programmers.)

When my boss interrupted us via Instant Messenger last week, we had this conversation:

Boss: When you and Ralph get tired of each other, I need a few minutes of your time.
Me: We're knee deep in crap right now. Can we call you in 30 minutes?
Boss: Ok. I notice that your personal pronoun of choice is is always "we". You and Ralph have become one.
Me: Resistance is futile.

Although pair programming is rewarding, it's weird having a partner in my work day much as I have a partner in my marriage. Of course there are differences. For example, my wife and I don't ALWAYS defecate at the same time.

Ralph and I, however, are looking forward to synchronizing our menstrual cycles.


Kat said...

Scary how quickly you've bonded with Ralph. You'll be picking out china patterns next.

Mike said...

Doh! I have no idea what kind of china he likes! I guess we're not done pair programming yet.

Will said...

Do you use VNC to see each others' desktops?

Mike said...

Will, you know, despite the fact that I VNC into our test systems all the time, we've never used it when the desktop owner is actually operating the system. We use webex for that. I should try VNC though.