While this would require greater documentation since more than two
people can't work at one PC, one obvious benefit would be that
knowledge would be more equally shared across a project group.
The goal is high-quality, realtime communication & decision making.
Pairs rotate frequently, so everyone learn to work with all the modules. And
pairs should work on "pairstations", with dual keyboards & mice. The
pairstations should be in a common programming room, so people can overhear
who's having trouble.
At the higher level, development should work with teams in vendor-client
relations. Consider how Linux's kernel gets upgraded, by constantly sharing
streams of patches and refactors.
This environment requires more documentation in the form of realtime status
checks. Test cases should be as literate as possible (confer Ruby Cucumber), and
the integration system should conduct information about the project's state
automatically.
--
Phlip
http://zeekland.zeroplayer.com/