code ownership.jpg
source-Slideshare.net


Agile Practice

Collective Code Ownership

Alternative name(s)

Collective Ownership

Source

XP

Description

Blankenship et al (2011) explains that Collective Code Ownership spreads the responsibility of developing , improving or repairing the code to all programmers and also ensures every part of the system is available to every programmer . This helps empower the team to fix a bug immediately it is identified regardless of whether they were working on that part of the code or not.

Discussion

Some benefits of Collective Code Ownership is that it encourages everyone in the team to contribute new ideas to all segments and be innovative of the project and also ensures there is continuity of work even if a team member is absent thus eliminating bottlenecks. It also encourages the developers to be responsible for the quality of the code. Through Collective Code Ownership the developer can re-factor a code , fix bugs immediately or add functionality.

Despite the benefits of Collective Code Ownership it certain shortfalls are identified which include that by having the responsibility of quality given to everyone, it may result to no one actually taking responsibility. This would be a problem and might result to poor quality in the features produced by the developers. Lack of clearly identified boundaries could lead to lack of well defined interfaces, and well defined interfaces are essential for and key for an effective design.

Links to other agile principles or practices

Pair programming : Through Collective Code Ownership two people will work on the same code in turns through Pair Programming where the driver and the observer use the same keyboard checking each others work as they type in there code and thinking of the overall design.

Coding Standards : It is important that when a team is working agree the Coding Standards within the team, Collective Code Ownership gives ownership of the code to the team however can lead to other assumptions, so clear Coding Standards are essential

Empower The Team : Through Collective Code Ownership teams are empowered to take ownership and share responsibility for the code and could result to higher functioning empowered teams.


Links to PMO knowledge areas (KAs)

Constraint management : through Collective Ownership the team is not constrained on working in the project ,any of the members of the team can work on the code and the code does not belong to one specific person .

Trust : For Collective Ownership to work within a team ,it is important that there is trust within the team , through trust there is confidence within the team that any editing done by the members is of good quality and fulfills requirements.

Team Work : Collective Code Ownership ensures responsibility is shared and this encourages team work as all developers work together towards the same objective striving towards one objective.

Examples of use outside to IT domain

collective land ownership : Collective Ownership has been used In land ownership in India where women are allocated a piece of land that they cultivate together as a group to increase there income and also help them own land which they would have otherwise not have had as individuals.

References

Blankenship, J., Bussa, M., Millett, S., (2011). Pro Agile .NET Development with Scrum. Springer

External links

Alternative name http://bit.ly/1MD5FDt
Source http://bit.ly/1xpWeyr
collective land ownership http://bit.ly/1BHAHoX

Read in another language

<Whenever possible, include links to pages with translations to other languages>