Why don't we pair program more often? From my own anecdotal experience, I feel as though the resulting code is more concise and contains fewer bugs. If programmers want to live up to the hot shot reputation, they should accept that professionals always want someone covering their back.
It depends on the person or project, I think. I personally work badly with someone over my shoulder; it somehow gets me totally out of the problem-solving/coding zone and makes me extra self-conscious. Same for writing text, actually--- some people can collaboratively write articles or books while sitting at the same computer, or live online in something like Etherpad, but when I've co-written things, it's always worked much better if I could write some bigger chunks on my own, at least on the level of paragraphs, before trading edits/etc. with my collaborator. Partly perhaps it's because I use the text-editor (in both cases) to externalize work in progress and brainstorm, often typing stuff that's clearly wrong and not the final product, before I get to rearranging/editing/fixing it, and it feels weird to have someone in real-time reading my scribbles as I'm working something out, when it's not yet intended to be anywhere close to done / ready-to-review.<p>On the other hand, I know other people who love people watching them code, and people who work really well writing English collaboratively too.
In the three fastest formulas all the pilots are solo : Champ Cars, Formula 1, MotoGP.<p>Two person vehicles are available but they are for the experienced pilot to give the novice passenger a thrill.<p>So use logic, not metaphors.