History of software configuration management
Encyclopedia
The history of software configuration management
(SCM) in computing
can be traced back as early as the 1950s
, when CM (for Configuration Management
), originally for hardware development and production control, was being applied to software development. The first software configuration management was most likely done manually. Eventually, software tools were written to manage software changes. History records tend to be based on tools and companies, and lend concepts to a secondary plane.
Until the 1980s, as can be seen from a source such as Software Configuration Management by J.K. Buckle (1982), SCM could only be understood as CM applied to software development. Some basic concepts such as identification and baseline (well-defined point in the evolution of a project) were already clear, but what was at stake was a set of techniques oriented towards the control of the activity, and using formal processes, documents, request forms, control boards etc.
It is only after this date that the use of software tools applying directly to software artefacts representing the actual resources, has allowed SCM to grow as an autonomous entity (from traditional CM).
The use of different tools has actually led to very distinct emphases.
Software configuration management
In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....
(SCM) in computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
can be traced back as early as the 1950s
1950s
The 1950s or The Fifties was the decade that began on January 1, 1950 and ended on December 31, 1959. The decade was the sixth decade of the 20th century...
, when CM (for Configuration Management
Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...
), originally for hardware development and production control, was being applied to software development. The first software configuration management was most likely done manually. Eventually, software tools were written to manage software changes. History records tend to be based on tools and companies, and lend concepts to a secondary plane.
- Early 1960s1960sThe 1960s was the decade that started on January 1, 1960, and ended on December 31, 1969. It was the seventh decade of the 20th century.The 1960s term also refers to an era more often called The Sixties, denoting the complex of inter-related cultural and political trends across the globe...
or even late 1950s1950sThe 1950s or The Fifties was the decade that began on January 1, 1950 and ended on December 31, 1959. The decade was the sixth decade of the 20th century...
: CDC UPDATE and IBM IEB_UPDATE. - Late 1960s, early 1970s1970sFile:1970s decade montage.png|From left, clockwise: US President Richard Nixon doing the V for Victory sign after his resignation from office after the Watergate scandal in 1974; Refugees aboard a US naval boat after the Fall of Saigon, leading to the end of the Vietnam War in 1975; The 1973 oil...
: Professor Leon Pressor at the University of California, Santa BarbaraUniversity of California, Santa BarbaraThe University of California, Santa Barbara, commonly known as UCSB or UC Santa Barbara, is a public research university and one of the 10 general campuses of the University of California system. The main campus is located on a site in Goleta, California, from Santa Barbara and northwest of Los...
produced a thesis on change and configuration control. This concept was a response to a contract he was working on with a defense contractor who made aircraft engines for the US Navy. - Early 1970s: UnixUnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
make
. - By 1970 CDC update was an advanced product.
- Circa 1972: Bell LabsBell LabsBell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
paper describing the originaldiff
algorithm.DiffIn computing, diff is a file comparison utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file. Diff displays the changes made per line for text files. Modern implementations also... - 1972, with an IEEE paper in 1975: source code control system, SCCSSource Code Control SystemSource Code Control System is an early revision control system, geared toward program source code and other text files. It was originally developed in SNOBOL at Bell Labs in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/360 MVT...
, Marc RochkindMarc RochkindMarc J. Rochkind invented the Source Code Control System while working at Bell Labs, as well as wrote , and founded .-Source Code Control System:The Source Code Control System was the first modern revision control system. SCCS was developed by Rochkind in 1972 at Bell Labs...
Bell Labs. Originally programmed in SNOBOLSNOBOLSNOBOL is a generic name for the computer programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4...
for OS/360; subsequently rewritten in CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
for Unix (used diff for comparing files). - 1970s: Pansophic's PANVALET was an early source code control system for the mainframe market. They were based in Lisle, IllinoisLisle, IllinoisLisle is a village in DuPage County, Illinois, United States. The population was 22,930 at the 2011 census, and estimated to be 23,135 as of 2008. It is part of the Chicago metropolitan area and the Illinois Technology and Research Corridor...
. - 1975: Professor Pressor's work eventually grew into a commercially available product called Change and Configuration Control (CCC) which was sold by the SoftTool corporation.
- Revision Control System (RCSRevision Control SystemThe Revision Control System is a software implementation of revision control that automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, for example programs, documentation, procedural graphics, papers, and form...
, Walter Tichy). - Early 1980s:
patch
(around 1985, Larry WallPatch (Unix)patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...Larry WallLarry Wall is a programmer and author, most widely known for his creation of the Perl programming language in 1987.-Education:Wall earned his bachelor's degree from Seattle Pacific University in 1976....
). - 1984: Aide-de-Camp
- 1986: Concurrent Version System (CVSConcurrent Versions SystemThe Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
). - 2000: Subversion initiated by CollabNetCollabNetCollabNet is a company that sells application lifecycle management software for distributed development teams engaged in both enterprise and open source development.-History:...
. - Early 2000s: distributed revision controlDistributed revision controlA distributed revision control system , distributed version control or decentralized version control keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network.-Distributed vs...
systems like BitKeeper and GNUGNUGNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
arch become viable.
Until the 1980s, as can be seen from a source such as Software Configuration Management by J.K. Buckle (1982), SCM could only be understood as CM applied to software development. Some basic concepts such as identification and baseline (well-defined point in the evolution of a project) were already clear, but what was at stake was a set of techniques oriented towards the control of the activity, and using formal processes, documents, request forms, control boards etc.
It is only after this date that the use of software tools applying directly to software artefacts representing the actual resources, has allowed SCM to grow as an autonomous entity (from traditional CM).
The use of different tools has actually led to very distinct emphases.
- traditional CM for Software, typically around Change MananagementChange managementChange management is a structured approach to shifting/transitioning individuals, teams, and organizations from a current state to a desired future state. It is an organizational process aimed at helping employees to accept and embrace changes in their current business environment....
(examples: Continuus, CVSConcurrent Versions SystemThe Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
or ClearCase UCM) - line oriented management, based on patches or Change Sets
- focused on Derived ObjectDerived ObjectIn Computer programming, derived objects are files that are not directly maintained, but get created.The most typical context is that of compilation, linking, and packaging of source files....
s and Build Management (example: Base ClearCaseRational ClearCaseThe Rational ClearCase family consists of several software tools for supporting software configuration management of source code and other software development assets. It is developed by the Rational Software division of IBM...
/clearmake)