New Branching Standards for Configuration Management


In his CM: the Next Generation series, Joe Farah gives us a glimpse into the trends that CM experts will need to tackle and master based upon industry trends and future technology challenges.

scripts.  When branching is simplified, automation increases.

Am I recommending stream-based branching as a CM best practice?   Not entirely, at least not at this point in time.  It is one way to bring sanity to branching but it won't work for all projects for various reasons.  I know of several companies which have used or tended to this future standard for their branching, often with their own home grown tools or scripting.  But I also know of projects in some of these same companies that have stuck with various other branching strategies and patterns.

Why a standard as opposed to a branching strategy or pattern?  Well, a strategy is a good, perhaps rigid, guideline, and possibly even more beneficial to an organization than a standard.  However, in order for the industry to embrace it, a standard is required.  When a standard is embraced industry-wide, in whole or in part, the industry tools can anticipate behavior.  So, for example, if you have to move from one tool to another, your existing branching strategy may not map onto the new tool.  This in turn can turn what might be a few days work into a few months of work.  If the branching strategy is supported across tools, you will not have to limit your choices.  The industry CM tools can also help to automate CM more effectively when specific standards are in place.  It is not a downside that not all CM projects will embrace the standard.  Not everyone uses Bluetooth.  Not everyone uses ISDN.  But for those who need those communication protocols, having them as standards makes all of the difference.

Don't just make a switch.  Look at the various branching reasons listed here and add your own.  I would really appreciate it if you added your own as comments or references to this article, as it would help everyone.  Take incremental steps, reducing branching complexity until you're more comfortable with a full cutover.  You won't realize most of the benefits until you reach a state of stream-based branching, and even then, it depends on the tools you're using to support such a capability.

But from decades of experience with this form of branching, I'm convinced that the next two generations of CM tools will see a vigorous level of support in this area.  Many corporate processes, and some CM tool vendor guidelines, already embrace it in one form or another.   The benefits are just too great for it not to emerge as a branching standard in the next generation of CM technology.


About the author

Joe Farah's picture Joe Farah

Joe Farah is the President and CEO of Neuma Technology and is a regular contributor to the CM Journal. Prior to co-founding Neuma in 1990 and directing the development of CM+, Joe was Director of Software Architecture and Technology at Mitel, and in the 1970s a Development Manager at Nortel (Bell-Northern Research) where he developed the Program Library System (PLS) still heavily in use by Nortel's largest projects. A software developer since the late 1960s, Joe holds a B.A.Sc. degree in Engineering Science from the University of Toronto. You can contact Joe at

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

May 04
May 04
May 04
Jun 01