So what are the benefits of sharing the codebase? Its proponents claim that, as with pairing, sharing the codebase reduces management’s overall vulnerability to staff turnover, and makes it easier to deploy staff. If everybody more or less knows what is going on in all of the codebase, then you have more flexibility when figuring out who will do what in the next iteration. And if someone leaves the team, it is much less of a crisis; other team members can fill the gap pretty straightforwardly.

Other perhaps more compelling benefits of sharing the codebase include simpler, better overall design, more design consistency, and better mentoring of programmers. All of these things, again, help make the code more extensible and the team more agile. They help the team deliver more running, tested features per iteration, and deliver them more consistently, with least risk.