Pair Programming is NOT always a choice
I know this subject has been talked about practically to death, but from what I have read, there's an assumption about Pair Programming that I believe... no, I know is Just Plain Wrong.
The assumption is this: Paired Programming is a Choice.
In other words, most people seem to believe that whether you participate and thrive in a paired programming environment is a personal choice. And the sub-assumption is that if you do NOT, well, you clearly have a personality defect. Most of the debate goes something like this:
I don't like the idea of Paired Programming.
That's because you haven't tried it. You're just afraid to try something new.
No, I really DID try it.
You obviously didn't try it RIGHT. I'm sure you missed some key point about how to do it.
No, I was in an XP shop that had been doing it for a long time, with a lot of success.
Oh, so it's YOU that's the problem. Yeah, XP really smokes out who is and is not capable of being a good Team Player. Must be an ego thing.
No, I've always considered myself a really good team player and collaborator. I get high marks for this on every performance review I've had... from every manager I've had, and I've never had any trouble working well with co-workers.
Like I said, sometimes it takes XP to smoke out who is REALLY a Team Player. There's no room today for loners.
I know the arguments for and against XP, and I'm personally in favor of most of XP. I know the case for Paired Programming. I know the benefits. I know the studies and real results. I also know that for most people, Paired Programming really is a choice. That's because most people fall into the category known as Non-Loners. The masses. The majority.
But there is a minority (and they can't just be defined by a simple Meyers-Briggs type) for whom the idea of Paired Programming is NOT a choice any more than is their sexual orientation. People for whom the idea of being Not Alone that much (and with someone with whom they do not already have an intimate relationship) makes them as crazy as being alone makes Non-Loners, well, lonely.
One problem is that the majority world of Non-Loners largely views Loners as maladjusted. A condition to be "fixed". The "L" word has been perpetuated, especially by the media, to represent something sad, or worse, scary. On any given day, somewhere in the world (especially the US) a reporter is saying, "Neighbors describe the [mass murderer, pyromaniac, etc] as a loner." In reality, most of these so-called evil loners were in fact Non-Loners who were rejected by others and didn't take it well.
Loners are the folks for whom being alone is not a condition to be avoided, but relished. For whom a Thanksgiving day spent hiking alone, coding a game, or reading a good book is far preferred to a day spent locked in a house with ten bickering relatives. Yet the Non-Loners of the world find it inconceivable that a holiday spent alone could be anything but a cause for pity. Loners not only don't mind, but in fact have a strong need for, being alone. How do I know? I am one. And the idea of Paired Programming, in it's most-common implementation (you sit side-by-side, physically together, headphones off, for the majority of your programming day) makes me physically ill. Not because I'm afraid of something new. Not because I insist on personal code ownership as opposed to collective code ownership. Not because I just haven't tried it (I have). Not because I'm not a Team Player. Not because I have a Serious Character Defect. (OK, that last part is debateable but still...)
I simply NEED to work alone (which doesn't have to mean in my own office or anything... I can be alone sitting three feet from someone else) for larger portions of the day than the traditional Pair Programming model allows. For me, this is a need, not a choice. And please don't suggest that I have no self-awareness... most True Loners have fought the masses and the negative stereotypes long enough to know the difference between a need and a choice. We're the ones who who have to risk the life of another person (as in, "You'll kill your Aunt Betty if you don't come to the family reunion...") to protect our own sanity.
Non-loners experience real, physical symptoms of lonliness when forced to spend too much time NOT in the company of others. They become stressed, depressed, anxious. Loners, on the other hand, experience physical symptoms when they they don't have enough alone time. For us, time-without-company (espcially company not of our own choosing) is as necessary as water and oxygen. Not a habit. Not something to be learned. Not a choice.
However, the True Loner is definitely in the minority. So I believe an XP manager should spend time and energy to smoke out which of the reluctant programmers really ARE merely afraid vs. True Loners. In most cases, it's the former, and a gentle introduction is probably all that's needed. But ignoring that True Loners like me exist won't make us go away. And you're more likely to find the True Loner in the programming profession than, say, marketing.
We exist. The question is, what will you DO with us? Do you force us until we either numb ourselves to the overwhelming togetherness or just leave because we can't stand it? Do you find other tasks for us that aren't on the project? Do you fire us for non-compliance? Or do you find a way to exploit our strengths?
I'm not sure what the answer is. As a manager (and I was always a really bad one), I'd probably be tempted to say sacrifice the one for the many. But does that really, in the long run, serve the company and the team best? Is there really no other way to get the benefits of XP Pair Programming than by this particular (sit side-by-side, etc.) implementation? Because True Loners aren't against team work and being with people. Heck, I sit five feet away from my co-author/partner all day long, every day. It works GREAT for us. This does NOT violate my sense of aloneness, and we collaborate throughout the day, brainstorm, review each other's work, etc. A True Loner doesn't need or necessarily want to be in Solitary Confinement. And again, please don't confuse being a Loner with not being a team player. These are two completely different things. The majority of people are Non-Loners, and you'll find plenty of non-team-players among those ranks.
Part of the reason I felt compelled to post this is because True Loners by definition don't "stand together". There's no group advocating for the Loner. We don't get together with others of our own kind. We don't form clubs. We don't have meetings. But my heart nearly breaks for the True Loner not just forced but often humiliated into participating in Paired Programming, lest he or she be viewed as Not A Good Person. Which means, Not Like Most People. For most Non-Loners (except those that have come to know and appreciate a Loner), the True Loner simply does not represent Goodness. Non-Loner == Good and Normal. Loner == Trouble.
If you are (or suspect you might be) a True Loner, you might consider the book Party of One: The Loner's Manifesto. If you're a manager, and you suspect that you might have a True Loner in your midst, or you're perhaps in a relationship with someone you think might be a True Loner, you can read the book to learn more about us. To see that we're not evil, stuck-up, cold. We're just different. If you're a Non-Loner with negative feelings about True Loners, perhaps it's because you're afraid of something new? ; )
And maybe you wouldn't have wanted any of these folks on any team of yours, but the world is filled with examples of True Loners who made a difference in the world. As "Party of One" author Anneli Rufus puts it in the book, "Down the years, around the world, they form a shining line -- in single file, of course. Da Vinci. Michelangelo. Issac Newton. Rene Descartes. Issac Newton. Kipling. Thoreau. Beatrix Potter. Dickinson. Lawrence of Arabia." She later includes Alec Guinness and Albert Einstein. Do we have anything to offer the project, even if we can't survive Paired Programming? Maybe not. But this passage from Rufus makes me feel better about it:
"Yet here we are, not sad, not lonely, having the time of our lives amid their smear campaign.
We are the ones who know how to entertain ourselves. How to learn without taking a class. How to contemplate and how to create. Loners, by virtue of being loners, of celebrating the state of standing alone, have an innate advantage when it comes to being brave;; like pioneers, like mountain men, iconoclasts, rebels and sole survivors. Loners have an advantage when faced with the unknown, the never-done-before and the unprecedented. An advantage when it comes to being mindful like the Buddhists, spontaneous like the Taoists, crucibles of concentrated prayer like the desert saints, esoteric like the Kabbalists. Loners, by virtue of being loners, have at their fingertips the undiscovered, the unique, the rarefied. Innate advantages when it comes to imagination, concentration, inner discipline. A knack for invention, originality, for finding resources in what others would call vacuums. A knack for visions."
At least that's what we True Loners like to believe when we're labeled at best "not a team player" and at worst, "an axe-murderer". Besides, we're cheaper in the long run. We rarely stay for the pizza and beer parties. ; )