I’ve been meaning to write up a post on Branch-Per-Feature for a very long time now – nearly a year, actually. I’ve been seeing a lot of twitter about this idea, recently, and have done a poor job of assisting those who are asking questions. Today, though, Tim Ottinger finally convinced me to get off my butt and get it done. So, here it is… well… here’s the index and introduction for a multi-part post series, anyway.
What Is Branch-Per-Feature
At the heart of Branch-Per-Feature, is the notion of using source control in a manner that allows multiple teams or individuals to work on the same software system without clobbering each other with change sets. That is, we should be able to work in a manner that allows Feature Team A (FTA) and Feature Team B (FTB) to work independently of each other. FTA should be able to analyze, code, test, and deliver their feature without any regard for the work that FTB is currently engaged in. When either team is finished with their work, the other team will merge the now stable feature changes into their branch, and continue on from there.
The Article Series
As I began writing up the initial post on Branch-Per-Feature, I recognized the significant amount of information that I was trying to dump onto the world, all at once. While I do believe that all of what I am going to say is useful and beneficial, I also think that it would be better for the community if I split the information into more logical chunks. This will allow the individual reader to more easily find information that they are looking for, without having to wade through page after page after page of information that they don’t want at the moment.
The following is the outline of posts that I am planning for this series.
- Branch-Per-Feature Source Control. Part 1: Why
- Branch-Per-Feature Source Control. Part 2: How (Theory)
- Branch-Per-Feature Source Control. Part 3: What and When (Strategy)
- Branch-Per-Feature Source Control. Part 4: How To (Subversion)
- Branch-Per-Feature Source Control. Part 5: CI-Build-Per-Branch
- Branch-Per-Feature Source Control. Part 6: Database
- Branch-Per-Feature Source Control. Part 7: Testing Web Apps
- Branch-Per-Feature Source Control. Part 8: Lessons Learned
The “Lessons Learned” information may find it’s way directly into the individual posts. However, I’m hoping to collect all of these into a single post, specifically, at the end of the series. Be sure to check back to this index page on a regular basis, for updates in the series. I’m planning to get the series done in a fairly short amount of time (a few weeks, at the most) so that I don’t lose my momentum or motivation.
Posted
Jul 15 2009, 05:04 PM
by
derick.bailey