We would like to revisit our definition of Agile SCM. In our earliest articles on the topic, we defined Agile SCM as "the pragmatic application of sound CM principles and practices in accordance with agile values and lean thinking to serve the needs of the business!." We wish to elaborate what that means in terms of SCM for agile development, but even more importantly in terms of how we should apply agile, lean, and their related principles to SCM processes and procedures.
History of Agile SCM
Prior to the February 2001 gathering in Snowbird, UT that resulted in the Agile Manifesto and the name "Agile Development Methods," Agile methods were called "Lightweight" or "Minimalist" methods. From 1995-2000, hardly anyone knew of any of them except for Extreme Programming (XP), though there were several others during that time (including Scrum, ASD, Crystal, DSDM, and FDD). Discussions of the application of SCM to such methods were fairly limited:
- XP had declared a set of 4 values, along with some principles & practices, and was quickly gaining popularity (and notoriety). On occasion, the moniker "eXtreme CM" (or XCM) might have been bandied about a few times on a handful of mailing-lists.
- Any mention of SCM for these development methods typically referred only to a small handful of CM-related practices (e.g., "Continuous Integration") and how to create a CM environment (with a strong emphasis on tools & tooling) that would enable those methods and empower the team.
- Rapid Application Development (RAD) was around before Agile & XP came on the block, as were collaborative development environments. And again, almost all mentions of SCM in these contexts were in the form of enabling these kinds of project environments with tools and procedures (mostly tools).
To our knowledge, the term " Agile SCM " was first coined in 2000-2002 by Brad Appleton and Steve Berczuk (before "Agile" was trendy & popular) while collaborating together on their SCM Patterns book , and in a subsequent appendix they wrote for Ann Hass' book on SCM Principles and Practices . Being part of the software patterns community in the late 1990's made both Brad & Steve privy to numerous discussions with, and review-drafts of papers from Agile pioneers such as Kent Beck, Ward Cunningham, Martin Fowler, Alistair Cockburn, Robert Martin, Michael Beedle, and others who would later found the Agile movement, create the Agile manifesto , and author the first books on eXtreme Programming , Refactoring, and Scrum. Some of those early discussions (prior to 2000) even took place on the original wiki-web (first created by Ward Cunningham), and many of those discussions are still chronicled there (albeit rather dated by now).
Interest in, and articles about, Agile SCM seemed to grow slowly at best from 2000-2004. About the only other folks writing specifically about Agile/XP and SCM were Darcy Weber ( CM Strategies for RAD ), Christensen ( Tracking Change in Rapid and eXtreme Development ), and Bendix & Ekman (see the ASCM project ). The CMCrossroads community & portal sprouted at that time, as did the CMWiki-web. And there were some initial exploratory (and heated) discussions there on some of the forums (and also the version-control maillist, when it still existed). In April 2003 the CM Journal had its first issue devoted to the topic of Agility and the following month gave birth to the regular "Agile SCM" column.
Somewhere near the end of 2004, there was a small "spurt" in articles on the subject (by authors other than articles and presentations by Steve, Brad, and Rob, and the annual CM Journal issue devoted to