Agile SCM - Relating Patterns to OOD, TBD and POB Principles


of the resulting avoidance of error is not always obvious.

Continuous Workspace Update  - PSP, IIP
This pattern [2] works well together with private checkpoint, hence the same principles applying. "Little and often" seems like more work but it beats the alternatives!

Integration Build    - CLIP, PLP, IPP, BLIP, CLFP, CFLIP, IIP
This pattern is a superset of Private Build. Collaboration/Flow Integration Principle is a dynamic expression of CLIP. Integration is all about collaboration, so CFLIP also applies,

Continuous Integration, Pre-Commit Validation and Post-Commit Notification  - CLIP, PLP, IPP, BLIP, CLFP, CFLIP, IIP
Continuous integration is the combination of Integration Build to ensure integrity with regular feedback to users which improves the flow of changes and evolution.  These principles [2] are part and parcel of ensuring integrity (CLIP), and the net result is an increase in "rhythm" or frequency of correct checkins, thus an increase in flow.

Unit/Smoke/Regression Tests - CLIP, BLIP
A pattern of principles occurring here! CLIP implies a number of patterns working together to ensure integrity - see the others where this occurs.

Codeline Policy - CEP, CLFP, CLIP, CFLIP
This is a pattern of applying principles! Specifying the attributes of your codelines, and which principles apply to which level, defines the policy. Content Encapsulation

Active Development Line, Release Line and Mainline - PLP, CLFP, CLIP, CLNP, CLBP, SPP, SHIP
Promoting changes between codelines in consistent chunks (PLP) keeps codelines as stable as possible, and yet provides for changes and evolution of those codelines as appropriate.

How well are the principles we derived holding up? Where are there overlaps with patterns? Where do principles add value, and where do they not? As you can see this is a work in progress and we look forward to feedback and suggestions!

We intend to revisit this article to consider some other commonly used patterns as well.


[1] Software Configuration Management Pattern s: Effective Teamwork, Practical Integration ; by Stephen Berczuk and Brad Appleton; Addison-Wesley, November 2002.

[2]  Codeline Merging and Locking: Continuous Update and Two-Phased Commits ; by Brad Appleton, Steve Berczuk, Steve Konieczka, CM Journal, November 2003

[3] Agile Build Promotion : Navigating the Ocean of Promotion Notions; by Brad Appleton. Steve Berczuk; CM Journal, September 2004

[4] Continuous Staging: Scaling Continuous Integration to Multiple Component Teams; by Brad Appleton, Steve Berczuk, Steve Konieczka; CM Journal, March 2004

[5] Practical Perforce: Channeling the Flow of Change in Software Development Collaboration; by Laura Wingerd; O'Reilly & Associates, 2005

[6] "Merge as You Go", Christopher Berarducci - Software Engineer, Handspring, Perforce User Conference 2003

[7] "Yesterday, my program worked. Today, it does not. Why?" Andreas Zeller

[8] Delta Debugging

[9] The Illusion of Control ; by Brad Appleton, Steve Berczuk, Steve Konieczka, CM Journal, December 2005

About the author

Brad Appleton's picture Brad Appleton

Brad Appleton is a software CM/ALM solution architect and lean/agile development champion at a large telecommunications company. Currently he helps projects and teams adopt and apply lean/agile development and CM/ALM practices and tools. He is coauthor of the book Software Configuration Management Patterns, a columnist for the CMCrossroads and AgileConnection communities at,  and a former section editor for The C++ Report. You can read Brad's blog at

About the author

Robert Cowham's picture Robert Cowham

Robert Cowham has long been interested in software configuration management while retaining the attitude of a generalist with experience and skills in many aspects of software development. A regular presenter at conferences, he authored the Agile SCM column within the CM Journal together with Brad Appleton and Steve Berczuk. His day job is as Services Director for Square Mile Systems whose main focus is on skills and techniques for infrastructure configuration management and DCIM (Data Center Infrastructure Management) - applying configuration management principles to hardware documentation and implementation as well as mapping ITIL services to the underlying layers.

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!