This is part 5 of 10 Pitfalls of Agility on Large Projects. In part 4, we talked about how the customer doesn’t want a release every month, and what to do about it.
Chris Seiwald and Laura Wingerd have had a great paper that’s been out for almost a decade which describe best practices for branching on large projects.
Here’s a similar (but ugly, hand-drawn) take on the key diagram in that article which shows the key criteria for branching and checkins — creating separate branches whenever the risks or goals of a set of checkins deviate significantly from the standards of the current main codeline.
The model requires a source code control system with good branch/merge support. Chris’ Perforce has been the best commercial choice for some time (because of its simplicity and scalability), but open source alternatives have been getting better. Subversion is a great open source choice, but has had subpar merging. This is slated to get better in upcoming version 1.5. And the whole Distributed SCM family of tools (git) makes this their forte.
In a future continuation of this post, we’ll look at tying branching best practices into the larger picture of robust continuous integration.





Hundreds of people can’t check directly into main every day | Lean Software Engineering « Noocyte’s Weblog | 09-Jan-08 at 7:44 am | Permalink
[...] Link to Hundreds of people can’t check directly into main every day | Lean Software Engineering [...]