Geeks With Blogs
CodeSeeker Just another developer trying to do the right thing

An additional, subtle, yet profound change I made for my group when I upgraded us to Visual SourceSafe 2005 (VSS) was to change the work style from Lock-Modify-Unlock (the default work style for older versions of SourceSafe) to the Copy-Modify-Merge work style.

This might seem like a small difference, but let me explain what that means. With the Lock-Modify-Unlock work style, developers check out a file, then work on it, then check it back in to VSS. While the file is checked out, no one else can check out that file. So until the developer is done working with the file, no one else can work with that file.

With the Copy-Modify-Merge work style, developers can still check out a file, work on it, and check it back in, but while it is checked out, another developer can check it out as well (more than one check shows up in the icon next to the file in VSS Explorer). What this does is opens up the code to be worked on by more than one person at a time.

While this is subtle, the profound part is that in addition to increased productivity (because a developer doesn't have to wait for another developer to finish before they can work on something), this new work style supports a sense of team ownership of the project.

Historically in my group, since we have many small projects, each project has had an "owner". If a change was required in that project, the owner would take care of it. But what if the owner is on vacation or getting their roots planed? In that case, they've been covered by someone else who doesn't know the project well, diving in, figuring it out, and "covering" for them. What a hassle!

But with the new parallel development model (as well as the other standardizations I wrote about before), I hope to engender more of a team atmosphere where everyone can work on every project at any time. Where stepping into a project that isn't your primary responsibility doesn't seem like a hassle.

The other additional feature to the new model is the "Merge" part. This is what people have not seen before and we will need to have a presentation on it. If you're not familiar with it, a Merge dialog appears when the internal version number of the file you are trying to check in to VSS does not match the internal version number of the latest file in VSS. That means that someone else modified and checked in the same file you are now attempting to check in while you were working on it. Those changes need to be merged with your changes and VSS helps you do that in the Merge dialog.

With the new parallel development model using the Copy-Modify-Merge work style, I hope our productivity increases and everyone feels like a part of the same team that shares all of the projects.

For an interesting, related article, visit Eric Sink's Source Control How-To and specifically the section starting with "The Church of "Edit-Merge-Commit"" in Chapter 2. Posted on Friday, July 27, 2007 9:22 AM | Back to top

Copyright © Mike Ellis | Powered by: