With collective code ownership, any member of the team can change any piece of code in the system at any time. There
should not be a policy or norm that one person is responsible for one part of the code base so that others are not
allowed to modify it.
Fostering an environment where any developer might be expected to modify any piece of code to implement some
functionality, fix a bug, or improve the solution leads to a more collaborative team experience. Developers will become
familiar with more of the code and benefit from the experience of others. It drives a high-performance team and removes
hurdles so that changes can be made by those who need them when they need them. No one person can become the gatekeeper
or bottleneck for changes to some subsystem within the code base.
Collective code ownership works best if there are coding standards to prevent one developer's style from being
significantly different than another's (see Concept: Coding Standard). It is also critical that there are developer tests in
place to ensure that work on a unit of code does not break it.
|