The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Mythbusting - Collective Code Ownership

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Mark Levison

Posts: 877
Nickname: mlevison
Registered: Jan, 2003

Mark Levison an agile software developer who writes Notes from a tool user.
Mythbusting - Collective Code Ownership Posted: May 7, 2008 1:55 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by Mark Levison.
Original Post: Mythbusting - Collective Code Ownership
Feed Title: Notes from a Tool User
Feed URL: http://feeds.feedburner.com/NotesFromAToolUser
Feed Description: Thoughts about photography, software development, reading, food, wine and the world around us.
Latest Agile Buzz Posts
Latest Agile Buzz Posts by Mark Levison
Latest Posts From Notes from a Tool User

Advertisement

team_work

In researching "Are there weaknesses with Collective Code Ownership?" for a news item on InfoQ I was struck by the number of myths that get repeated around Collective Code Ownership. I thought it time to burst a few balloons.

 

A number of writers equated Collective Code Ownership (CCO) with "no ownership" or chaos. Yet nothing could be further from the truth. Let's revisit Martin Fowler's definition (he's a better writer than I):

Collective code ownership abandons any notion of individual ownership of modules. The code base is owned by the entire team and anyone may make changes anywhere. You can consider this as no code ownership, but it's advocate prefer the emphasis on the notion of ownership by a team as opposed to an individual.

Now its not easy to practice CCO and to make it work you need an agreed on set of coding/formatting standards. You also need to practice pair programming to help maintain the required discipline. But its not chaos.

Simon Lin mentions a team that shared a single version control account. I'm not sure where this myth commons from. CCO says that we all own the code and that we're all responsible for maintaining it but nothing is said about sharing the same account. I think that responsibility requires that we're accountable for what we change.

Ralf's Sudelbücher argues that "Collective code ownership is limiting software quality", in a rather lengthy note from two years ago. His core argument appears to be that generalizing specialists can't know all of the domains that they need to code and so produce weaker code. The number of domains that a project might encompass has grown so large (ASP .NET, SQL, ADO, ...) that no one programmer on the team can command a knowledge of them all. On this last point we agree. However I don't think that means that team members who aren't specialists can't produce good quality, simple code in other problem domains. Simplicity is easy to appreciate no matter what the problem domain. In addition most new API's follow well established patterns for a lot of methods (i.e. open/close) that make it easier to pick up the basics. To solve the remainder of Ralf's problem: when coding in area where you don't know the speciality well either pair with the specialist or get them to review it after the fact. Effectively implementing Martin Fowler's Weak Code Ownership. At least this way we avoid the inevitable bottlenecks when we really on the point hats to do all the work.

One fact I'm coming to believe: to achieve the discipline required for CCO to work you need more than just common development standards. You also need to write most of your code using Pair Programming and Test Driven Development (at worst Test Minutes Afterward). Without these practices, consider using Weak Code Ownership where each module/package has an owner/evangelist who's role is to ensure that the conceptual integrity is not only maintained but explained to other team members.

Read: Mythbusting - Collective Code Ownership

Topic: Public speaking? Like a great movie! Previous Topic   Next Topic Topic: Oops on the Podcast

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use