Pair Programming The Wrong Way

We tried PairProgramming, but implemented it very badly.


I would like to understand this better. Those look like reasonable (not 'fun') setup rules for PairProgramming in a standard industrial environment. Assigned tasks, small cubicles, one person drives, 3-week assignments all seem to be fairly natural. And yet, contrary to expectations, it did not work. Can you add any insights you have as to what caused the problem, or what might have fixed them, or how it might have been set up, with the same people, to avoid the problems? Would coaching on the technique have helped? thanks -- AlistairCockburn

I'd also really like to understand this. What went wrong? -- PeterMerel


This setup doesn't sound remotely appealing to me. I'm looking for complementary insight and moral support from my partner. It doesn't sound like this work required much insight. Nor was the work aggressive enough to need moral support. Try pairing junior and senior. I've paired successfully with very junior people. They have to bring something to the collaboration though. That something can be as simple as having spent the day before studying the API documentation. We might make such an agreement ahead of time. -- WardCunningham


Thanks Ward. I realize the misimplication in my words - "reasonable" to me meant "reasonable set of constraints to find in an industrial programming organization", not "fun" or "appealing" (the italics are my changed text). It doesn't sound terribly appealing to me, either. My interest is because I didn't read anything that would have indicated to me that is wouldn't work. "Assigned tasks, small cubicles, one person drives, 3-week assignments."

I don't think one can do anything about the cubicles or one person drives...I thought you said you worked PP fine in private offices in Wycash, and there is only ever one person typing anyway, the other person sitting beside or behind. That leaves assigned tasks - which is not really unusual, and 3-week assignments. I shall be surprised if 3-week pairings turns out to break PP.

That leaves two possibilities I can now see, thanks to your comments:

I've had a very good experience as a "senior" person, pairing up with student interns who have grown up with the latest whizzy stuff and still have some energy . They get someone who's been through a couple of different things, and I get a guided tour through JavaSoft's latest offerings. -- SteveFreeman


Some of the problems I observed:

-- RussellGold


Re: "I don't think one can do anything about the cubicles" I have been amazed at how much my teams can do with their space once they have permission to break the rules. And it is critically important that the partners sit side by side. You have to be able to see each other clearly, and to switch roles without having to move anything but the keyboard and mouse. You can't do this with standard cube set ups, but half an hour with a screwdriver and/or an AllanWrench? can work wonders. And if the team won't spend half an hour on their own space, what are the chances that they are ready to take responsibility for improving their software process? -- kb

Related to that, if the team is not allowed to spend half an hour on their own space, what are the chances they feel allowed to take responsibility for improving their software process.


Thanks for all the clarifications, I certainly learned something from them. -- Alistair

[comments moved to PairProgrammingErgonomics]


We learned some fundamental rules for the PairProgramming construct itself, after seeing some of the above occurrences on VcapsProject:

I think most people who have done PairProgramming unsuccessfully (and then successfully) have learned these sorts of rules of thumb. Although I find it is good to take "refresher courses" from time to time. -- JeanineDeGuzman

Please note that the first rule above makes PairProgramming inapplicable to most environments. We must start with people who are brand new to pair programming, but to date our attempts have been such miserable failures that I doubt the value of pair programming.

Why can't a pair practice pairing outside of the work environment, get used to it (despite all the frustrations and annoyances that make it unproductive when two new Pair Programmers start out), then introduce Pair Programming to the team? It strikes me that a few hours spent at the end of the day, once or twice a week, would yield significant results within weeks. -- BrentNewhall

Why is doing pair programming outside of the work environment any more likely to be successful? It would seem that not having a common work goal and doing "play" programming after hours would only exacerbate the problems.


CategoryPairProgramming


EditText of this page (last edited May 3, 2004) or FindPage with title or text search