I work in both capacities. In the case of the pair programming I was a contractor, intended to work at a succession of projects. This was at the end of the first one and there was no second because, first of all, I had met the guy who was to be my next manager and I probably would have resigned the first time we met to talk about his project. He was a serious jerk. His normal speaking voice had the tone of a drunk trying to start a fight.
The other reason I quit was the pair programming. I had never heard of it, and if I had known what it meant I would have quit before doing it, since I was not going to continue with that other manager anyway.
I am not impressed with “they’re doing it wrong” arguments. I get the same about TDD, agile, and scrum, all of which I think are bullshit. They’re not doing it right; Beck says do it like this, blah blah blah. As if that matters. Just as there is no actual definition for “refactoring” but everyone uses it, there may be an “orthodox” form or pair programming but who cares? Nobody can concentrate under such conditions.
I did it once for three hours and I had anxiety attacks all night (I am not particularly prone to anxiety, by the way) and for the next eleven years. It was in my office, at my own machine, with a coworker I absolutely detested who had a quarter my experience yet spoke condescendingly and as though he was mentoring me on things like polymorphism that I had learned when he was an infant. I entered counseling some months ago and am finally going entire days without thinking about those three hours.
I’ve stayed in contact with several former managers. Most of them would have nothing to do with PP but one still manages software developers and he told me about one company he worked for that expected everyone to do PP; the manager told me that all the senior devs had come to his office as a delegation and said that if the pair programming continued they were all quitting. Every one of them hated it.
The less senior devs, lacking the leverage for such a demand, continued to follow orders; many of them ended up in psychotherapy. I’ve read about this; in pair programming you lose control over what we call “personal space” and are forced to work in very close proximity without the means to attain some separation.
In plain language, I was uncomfortable as fuck and all I could think about was getting some privacy.
I think the worst part of it was that after a sleepless night I emailed my “partner” and told him quite clearly that I could not continue, that it he needed a code walkthrough I would do that later but that I needed privacy to work. He answered at once and sounded agreeable, but as soon as I got to work he came in and pulled up the chair. What are you doing, I asked. “We’re pair programming.” Like fuck we are, get out of my office and I mean get out right now. He was one of those obedient people Microsoft prefers now, and would have eaten sewage if his manager told him to.
I only work from home now; I had one more onsite job after than and got exposed to scrum, which felt idiotic, and then I left the country. But if I were interviewing still and had an onsite job interview and PP was mentioned in any context other than “we don’t do that shit here” I would walk out without any courtesies at all.
Pair programming is sadism.