The ACME Project

Assembling Configuration Management Environments
(for Software Development)

by Brad Appleton

[ About ACME | About SCM | SCM Best Practices | SCM Links | Feedback ]

About ACME

ACME is an acronym for "Assembling Configuration Management Environments" (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 about SCM.

About SCM

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.

SCM Best Practices

Software Configuration Management Patterns: Effective Teamwork, Practical Integration

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:

Agile SCM

Focuses on agile practices for software configuration management and SCM patterns for agile development! See the following:

Branching Best Practices

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 "pattern form." We encourage you to provide feedback and ask you to Send us Your Comments!

Build Reproduction Best Practices

Please Note that this is still a very rough draft. We encourage you to provide feedback and ask you to Send us Your Comments!

Workspace (development "sandbox") Best Practices

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 Workspace Patterns we hope to grow and evolve it into a pattern language.

ClearCase Best Practices

Ive started a preliminary description of commonly seen best practices and pitfalls used with the ClearCase SCM tool from Rational Software.

Feedback on SCM Best Practices

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!

Technical corrections/additions
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.

The scm-patterns mailing list

The 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