We did 3 and sometimes 4 person programming working on LifeTech. We most often had two engineers and one life insurance mathematician. This worked well for about a week or two, but once we had the basic abstractions in place it got annoying fast. -- KentBeck
Thanks Kent! That sounds like what I would have expected. One thing I'm curious about is attempts to measure aspects of PairProgramming. In the PersonalSoftwareProcess, you are supposed to record and identify every bug and bugfix as it happens. It may produce measurable results, but it's an extremely annoying interruption of flow. So a less intrusive means of doing this would be desirable if one wants to gather such results.
Might this be an example where a third person serving strictly as a watcher or observer (and obeying the PrimeDirective ;-) could be helpful? Granted, they wouldn't be serving as an extra programmer. They'd just be trying to record things so some comparative data could collected without interrupting the flow. Problem is, it sounds like an immensely boring job (might one be better served by a video-camera) or some BigBrother environment that tries to capture all of that "in progress"? (Yikes - that's beginning to sound scary.)
The key to success is to know when to transition from GroupProgramming? to PairProgramming to IndividualProgramming?. In an environment that fosters honest conversation about the nature of each task -- the appropriate number of programmers is quickly discovered. --DavidVydra
Many programmers participate in a CrisisProgrammingEpisode? until the nature of the crisis becomes clear. After this, the most able take the controls while the interest of others begins to wane.
Interesting - Does CodeOwnership follow afterward or does CollectiveCodeOwnership (or something else entirely)?