The ACME Project

Assembling Configuration Management Environments
(for Software Development)

by Brad Appleton

Why the name ACME?

Poor old Wiley E. Coyote

So why did I choose the name "ACME"? Simple - because I'm a huge "Bugs Bunny & Roadrunner" fan from the days when I was an itty-bitty kiddie addicted to cartoons! I always got a laugh out of the way Wiley Coyote would always order these special gadgets from the fictitious "ACME Co." in his latest scheme to catch the Roadrunner. Then I would roll on the floor laughing while the scheme always managed to backfire on him somehow because the contraption didn't quite work as planned "fresh out of the box."

Many SCM tool users are in the same boat

Well, I think software tools in general, and software configuration management (SCM) tools in particular, are much the same way. Too often, we think we can just get our hands on an SCM tool and it will magically take care of all our SCM problems. But wouldn't you know, it just never seems to end up that way. The tool never quite works as planned "fresh out of the box." We have to add some of our own planning and communication and ingenuity to make it all work.

That's what the ACME project is supposed to be: A guide to SCM practices and resources that help us take existing software development tools and SCM tools and assemble them together into an effective configuration management environment that suits our particular shop's software development needs and processes.

Deciding what the A-C-M-E should stand for

"CM" is for "Configuration Management" (of software)

Once I decided what word I wanted the acronym to be ("acme"), I had to figure out what each letter in the acronym would stand for. The "CM" part was easy: Configuration Management. For accuracy, it should really be Software Configuration Management, but there is simply is no 'S' in "ACME" so I had to do away with it (call it "artistic license" ;-). I had a lot of ideas for the other words, some of which were suggested by other people.

'A' is for "Assembling"

For the 'A', suggestions were primarily: A, Advanced, Appleton, and Architecting. Naming it after myself seemed too self-aggrandizing IMHO, and the stuff I had in mind isn't necessarily advanced; it's more about increasing competency in the current SCM "state of the practice," rather than advancing the current SCM "state of the art"! The "A" would be a good fail-safe, if I didn't think of anything better, but I wanted something else.

"Architecting" wasn't bad at all, and I almost used it; but it had two problems: for purists and those with "pet peeves", it just so happens that "architecting" isn't a "real word" (at least not in theory, although it is commonly used -- but then again, so is "aint" ;-). But more importantly, "architecting" tends to be more about building something from scratch, rather than taking things already built, and gluing them together to fit your needs (but you still have to provide the glue, the right kind of glue in the right places for the right amount of time). Since physical configuration management is all about parts and assemblies, I decided that "Assembling" was a good fit. Not only was it a pun of sorts, but it was also a more accurate depiction of the idea I had in mind.

'E' is for "Environments"

As for the 'E', I had some suggestions for that too: Example, Engineering, Environment, Entourage, and even Edifice ;-) Once I decided on "Assembling," it just seemed like the best alternative of the ones I had considered.

Th-th-th-thats all folks!!!

And there you have it: more than you ever wanted to know about how and why I decided upon the name "ACME" and what the acronym stands for!

back to the ACME Home Page