Code Ownership
September 20th, 2002 by HenXP has one thing wrong IMO. Code Ownership.
XP says that code is not owned by a person, and everyone has the right to modify any code.
This is right, but XP so oversells this to the ivory tower setups that places who are the other side of XP from an ivory tower implement it wrongly.
There should still be design ownership, and code responsibility. One person should be responsible for each area of the Code Map [something we all need to have nailed to a wall in our department/project] and they are responsible for collating ideas and documentation on that code. They are responsible for bug fixing internally. Essentially, they must have a stake in the code, they must be a stakeholder to themselves.
They would receive the CVS changes in their email, they would have to demand answers if that CVS change is confusing, they would manage the decision as to whether that code-area meets its needs. That is, the level of stability, risk, quality that is needed. They would have a roadmap for improving the code and would discuss informally with others how to improve things.
So already we’ve created concepts of a ‘road-map’, a ‘code-map’ made of ‘code-areas’. An owner.
Ideally, owners would get a period to refactor their code. So on a project of 5 people doing v2.2 of a product, 1 of them would simply be refactoring a code area which does not have requirements.
Note: This does not mean 1 coder per area. Areas can still be coded by many people, but 1 person has to CARE about the area. They have to refuse to allow that code to go to production in the state it is in, they have to tinker with it in spare time to get it improved. They have to see how they can genericise it, how they can document its issues.
Then you need a Code tsar. Someone for whom the Code Map is an area. So they look into other peoples areas and try to keep them all under a common direction.
