Practice: Collective Ownership
  • Company owns the code, not you

  • Non-locking source repository [lyon]

  • Collective ownership requires sensitivity

Notes:

You are not the owner of the code, the company is. Too many programmers forget this. We are here to produce the best code for the company. If someone has a way to fix something you've written, let that person apply it.

[lyon] When I was just out of school, I worked at Sun Microsystems for a very senior Unix guy named Tom Lyon. He had a ton of experience. We were using SCCS for our source repository. SCCS has exclusive locking of files. If one person has locked the file, no one else can edit. I thought this was the "right way" to manage sources.

Tom thought differently. He thought that the source repository should be non-locking. The last person to checkin changes has to merge, if there are conflicts. Tom and I had many debates over this. It took me about 10 years to understand and accept Tom's position.

We use CVS, a non-locking source repository at bivio. We rarely have conflicts. Usually, somebody else hasn't even modified the file. If they have, it usually isn't in the same place. With the rare collision, it takes a few minutes to figure out the problem.

When you are programming at high speed, you don't want to have to wait on others. You want to be able to checkin your changes as soon as you can. This ensures the repository stays current and your code gets into test as soon as possible.

Collective ownership doesn't mean insenstivity. Make changes, but it is always good to communicate with the developer. Don't just recode something, because you don't understand it. Get face time with the other developer.