Software CM: Thirty-Five Years Later
Let’s flash back to the late 1970s. For a real early history of software configuration management, see Dave Eaton’s History of Software CM FAQ response. In this era, software developers did not have their own computers. A team of 200 developers shared 1GB (maybe 2GB) of disk space, typically with 2MB of private storage. If you were lucky, the mainframe was accessed via dumb terminals, located in a “terminal room.”
Yes, we’d moved on from (punched) cards, and we even had user accessible line printers (fixed uppercase font). Software was designed to the “terminal” which, again if you were lucky, had graphics that allowed you to draw lines around text.
At Bell-Northern Research (BNR), we had a few hundred developers working on the DMS-100 Family. We had interactive compiles and developers could do their own builds. We could download files to the lab or run builds on emulators to do testing.
Our CM tool looked after our change control, version control, and build needs, including compile order, change impact, and loading order. Every afternoon all “checked-in” files were compiled. An automatic email (yes, we had email) was sent if the compile failed internally! Every night a build was created and sanity tested with problem reports (PRS) raised if there were problems.
Our source code editor showed us the revision number in which any particular line of code was introduced, and we could enter the command to turn that into a software update (i.e., change package), which referenced the PRS or activity number being addressed. We could work on multiple releases in parallel and automatically generate our configuration lineups based on the status of each update.
We used a tool called Program Library System (PLS) developed by yours truly that was fast, even with tens of thousands of files in it. For user views, please read the BNR PLS Blog. You could retrieve any baseline to your directory. You could do incremental compiles/links/downloads. It would track which problems were fixed in which releases as well as which were outstanding. And it was never down!
So where has software CM gone in the past thirty-five years? Where are we now? Here’s my perspective: If I look at a typical shop today, progress has actually gone backwards. We need to be building on our past—not reinventing the wheel. Additionally, if I look at our own shop today, yes, we used stones and chisels compared to what we can do now. But that’s because we had the opportunity to build and evolve from a 1G technology to a 4G technology, as I describe in my CM Journal article, ALM Comes from Cutting the Cord.
So where are you today? And more to the point, why are so many shops still embracing or stuck in 1G or perhaps 2G technology? By the way, Ericsson, purchased by Nortel, still today uses PLS (proprietary and somewhat evolved)—more than thirty-five years after its first release.