SCM Best Practices
Assembling Configuration Management Environments
(for Software Development)
by Brad Appleton
ACME is an acronym for
(for software development).
The purpose of the ACME project is to gather together
successfully used "best practices" and "lessons learned" for software
configuration management (SCM), as well as other useful information
Software Configuration Management (SCM) means many things to many people.
Go to my SCM Definitions Page to see a broad list
the many meanings of SCM.
This is a book written by Stephen P. Berczuk and myself which describes sixteen SCM patterns for the "core" set of version control practices that developers on smaller teams/projects need to facilitate effective team coordination and practical integration without a lot of process bureacracy. It emphasizes awareness of the connection between SCM, the software's architecture, and the organization/team communication structure.
Effective software configuration management (SCM) strategies
promote a healthy, team-oriented culture that produces better
software. SCM Patterns alleviates software engineers' most
common concerns about software configuration management's
perceived rigidity and an overemphasis on process. Through the
use of patterns, a properly managed workflow can avert delays,
morale problems, and cost overruns. The patterns approach
illustrates how SCM can be easily and successfully applied in
small- to mid-size organizations. By learning how these patterns
relate to each other, readers can avoid common mistakes that too
often result in frustrated developers and reduced productivity.
Key coverage includes how to:
Focuses on agile practices for software configuration management
and SCM patterns for agile development!
See the following:
- Develop the next version of a product while fixing problems
with the current one.
- Develop code in parallel with other developers and join up
with the current state of codeline.
- Use current tools more effectively, and decide when to use
a manual process.
- Build and foster a development environment focused on producing
optimal teamwork and quality products.
The first installment of SCM best practices is a paper which limits
itself to the subarea of using version-branching for parallel development.
These best practices are written in
We encourage you to provide feedback and ask you to
Send us Your Comments!
Please Note that this is still a very rough draft. We encourage you
to provide feedback and ask you to Send
us Your Comments!
Steve Berczuk has finished an initial draft of patterns for using
workspaces (also called "sandboxes" and "development trees") with
version control systems. This is the beginning of a set of
we hope to grow and evolve it into a pattern language.
Agile Configuration Management Environments
Agile Software CM/ALM Articles at CMCrossroads
This used to be a regular monthly column in the CM Journal by myself, Steve Berczuk and Rob Cowham dedicated to the application of agile principles and techniques to SCM and SCM for agile projects. It has since grown into a collection of many articles from many different authors on topics that lie in the intersection of CM, ALM, Agile and Lean development methods (including DevOps).
SCM Patterns for Agile Architectures
This is a presentation I gave at the 2006 Dr. Dobbs Architecture and Design World Conference (AD2006) July 17-20 in Chicago, Illinois. It proposes a 4+2 Views model of SCM/ALM architecture and presents SCM patterns for each of the main views, including subject areas of branching (codelines), integration/build, promotion models & levels, and variability management.
SCM Patterns for Agility website
Ive started a preliminary description of commonly seen best practices
and pitfalls used with the ClearCase SCM tool from Rational Software.
Selecting The Right Branching Solution: Techniques, Strategies And Trade-offs
This is a powerpoint presentation Darryl Hahn and I gave at the
2003 Rational User's Conference (RUC2003) held in Orlando, FL,
August 2003. It builds upon several of the practices in the RUC2000
presentation, and adds a few others, and then shows 4 different
approaches that mix+match the practices together in various ways
and the rationale + trade-offs for each overall approach.
ClearCase Branching and Labeling Best Practices for Parallel Development
This is a powerpoint presentation I gave at the 2000 Rational User's
Conference (RUC2000) held in Philadelphia, PA, August 2000
Common ClearCase Practices: Best Practices, Traps, and Pitfalls
An attempt to compile a comprehensive list of commonly used best-practices
for using ClearCase. These have all been described at different times by
different people or groups either on the ClearCase user's mailing list,
or in some other SCM-related forum during the past five years or so.
Please email us your comments and feedback!
There is an SCM patterns mailing list
devoted to discussion of these and other patterns of recurring SCM best
practices. Here, people from different SCM backgrounds and tool
environments can share their experience with their success and failure
of various SCM strategies and tactics employed.
We want your and feedback, and encourage you to use the
SCM patterns mailing list to contribute
your comments. The types of comments we are especially
interested in are:
"Me too" stories and "War" stories!
If you have seen or used any of these patterns of practice or their
variations we want to hear about it. Or if youve suffered from one or more of the pitfalls, we want to hear about that too! Tell us your experience. What seemed
to be beneficial/detrimental about using the pattern/pitfall? What difficulties did it raise?
What insight can you share that will give us a better idea about the
context in which the pattern seems to work (and when it doesnt) or how to recover from the pitfall and prevent it's recurrence?
Your own real world examples!
Using various SCM tools, we'd like to hear real-life examples from
real practitioners working on real projects that describe the tool-specific
details of how the pattern was implemented in your particular environment.
We hope to gather a variety of implementation examples using a variety of
different SCM tools. If you have such an example and are able to share
it with us, we urge you to tell us about it!
Other common solutions!
Do you solve the same problem in a different fashion? Is their something
about your tool, team, or environment that makes an alternative solution
more appropriate for you? If so, let us know!
Improving clarity and usefulness
If you have an idea for how we can state something more clearly
or concisely, or use a better name for a pattern or trap/pitfall,
please let your voice be heard. Anything that will help prospective
readers to better understand and apply (and when not to apply) these
patterns is very important to us!
If you think some of the things we say are technically incorrect or
inaccurate, or that we missed something important, by all means please
let us know.
scm-patterns mailing list
is a list created for discussing patterns of software configuration
management best practices. It is hosted by YahooGroups! Visit the list webpage to subscribe!
back to Brad Appleton's Home Page