History Of Software Configuration Management
   HOME

TheInfoList



OR:

The history of
software configuration management In software engineering, software configuration management (SCM or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision ...
(SCM) can be traced back as early as the 1950s, when CM (configuration management), originally for hardware development and production control, was being applied to software development. Early software had a physical footprint, such as cards,
tapes Tape or Tapes may refer to: Material A long, narrow, thin strip of material (see also Ribbon (disambiguation): Adhesive tapes * Adhesive tape, any of many varieties of backing materials coated with an adhesive * Athletic tape, pressure-sensiti ...
, and other media. The first software configuration management was a manual operation. With the advances in language and complexity,
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, involving configuration management and other methods, became a major concern due to issues like schedule, budget, and quality. Practical lessons, over the years, had led to the definition, and establishment, of procedures and tools. Eventually, the tools became systems to manage software changes. Industry-wide practices were offered as solutions, either in an open or proprietary manner (such as
Revision Control System Revision Control System (RCS) is an early implementation of a version control system (VCS). It is a set of UNIX commands that allow multiple users to develop and maintain program code or documents. With RCS, users can make their own revisions of ...
). With the growing use of computers, systems emerged that handled a broader scope, including
requirements management Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A require ...
, design alternatives, quality control, and more; later tools followed the guidelines of organizations, such as the
Capability Maturity Model The Capability Maturity Model (CMM) is a development model created in 1986 after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. The term "maturity" relates to the degree of ...
of the
Software Engineering Institute The Software Engineering Institute (SEI) is an American research and development center headquartered in Pittsburgh, Pennsylvania. Its activities cover cybersecurity, software assurance, software engineering and acquisition, and component capabil ...
.


Timeline

* Early 1960s or even late 1950s: CDC UPDATE and IBM IEB_UPDATE. * Late 1960s into 1970s: The Librarian is released by
Applied Data Research Applied Data Research (ADR) was a large software vendor from the 1960s until the mid-1980s. ADR is often described as "the first independent software vendor". Founded in 1959, ADR was originally a contract development company. ADR eventually bui ...
and provides an alternative to keeping programs on punched card decks for the
IBM mainframe IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the large computer market. Current mainframe computers in IBM's line of business computers are developments of the basic design of th ...
market. * Late 1960s, early 1970s: Professor Leon Pressor at the
University of California, Santa Barbara The University of California, Santa Barbara (UC Santa Barbara or UCSB) is a Public university, public Land-grant university, land-grant research university in Santa Barbara County, California, Santa Barbara, California with 23,196 undergraduate ...
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 The United States Navy (USN) is the maritime service branch of the United States Armed Forces and one of the eight uniformed services of the United States. It is the largest and most powerful navy in the world, with the estimated tonnage of ...
. * Early 1970s:
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
make Make or MAKE may refer to: *Make (magazine), a tech DIY periodical *Make (software), a software build tool *Make, Botswana, in the Kalahari Desert *Make Architects Make Architects is an international architecture practice headquartered in London ...
. * By 1970 CDC update was an advanced product. * Circa 1972:
Bell Labs Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984), then AT&T Bell Laboratories (1984–1996) and Bell Labs Innovations (1996–2007), is an American industrial research and scientific development company owned by mult ...
paper describing the original
diff In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but it ...
algorithm. * 1972, with an
IEEE The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operation ...
paper in 1975: source code control system, SCCS,
Marc Rochkind Marc J. Rochkind invented the Source Code Control System while working at Bell Labs Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984), then AT&T Bell Laboratories (1984–1996) and Bell Labs Innovations (1996–2007) ...
Bell Labs. Originally programmed in
SNOBOL SNOBOL ("StriNg Oriented and symBOlic Language") is a series of 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. It was one of ...
for
OS/360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
; subsequently rewritten in C for Unix (used diff for comparing files). * 1970s:
Lisle, Illinois Lisle ( ) is a village in DuPage County, Illinois, United States. The population was 22,390 at the 2010 census, and in 2019 the population was recorded to be 23,270. It is part of the Chicago metropolitan area and the Illinois Technology and Resea ...
-based
Pansophic Systems Pansophic Systems, Inc., or simply Pansophic (Ancient Greek for "universal knowledge"), was a major American software company active from 1969 to 1991 and based in the Chicago metropolitan area. A pioneering software firm, it was among the fir ...
offered PANVALET, which was an early source code control system for the mainframe market. * 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 (
RCS RCS may refer to: Organisations *Racing Club de Strasbourg Alsace * Radio Corporation of Singapore *Radcliffe Choral Society * Rawmarsh Community School *Red Crescent Society *Red Cross Society * Representation of Czechs and Slovaks, a football t ...
, Walter Tichy). * Early 1980s:
patch Patch or Patches may refer to: Arts, entertainment and media * Patch Johnson, a fictional character from ''Days of Our Lives'' * Patch (''My Little Pony''), a toy * "Patches" (Dickey Lee song), 1962 * "Patches" (Chairmen of the Board song) ...
(around 1985,
Larry Wall Larry Arnold Wall (born September 27, 1954) is an American computer programmer and author. He created the Perl programming language. Personal life Wall grew up in Los Angeles and then Bremerton, Washington, before starting higher education at S ...
). * 1984: Aide-de-Camp * 1986: Concurrent Version System (
CVS CVS may refer to: Organizations * CVS Health, a US pharmacy chain ** CVS Pharmacy ** CVS Caremark, a prescription benefit management subsidiary * Council for Voluntary Service, England * Cable Video Store, former US pay-per-view service * CVS F ...
). * 2000:
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
initiated by
CollabNet CollabNet VersionOne is a software firm headquartered in Alpharetta, Georgia, United States. CollabNet VersionOne products and services belong to the industry categories of value stream management, devops, agile management, application lifecycl ...
. * Early 2000s (decade):
distributed revision control In software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centra ...
systems like BitKeeper and
GNU GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
arch become viable.


Background

Until the 1980s, 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 Management Change management (sometimes abbreviated as CM) is a collective term for all approaches to prepare, support, and help individuals, teams, and organizations in making organizational change. It includes methods that redirect or redefine the use of ...
(examples:
Continuus Rational Synergy is a software tool that provides software configuration management (SCM) capabilities for all artifacts related to software development including source code, documents and images as well as the final built software executable and ...
,
CVS CVS may refer to: Organizations * CVS Health, a US pharmacy chain ** CVS Pharmacy ** CVS Caremark, a prescription benefit management subsidiary * Council for Voluntary Service, England * Cable Video Store, former US pay-per-view service * CVS F ...
or ClearCase UCM) * line oriented management, based on patches or Change Sets * focused on Derived Objects and Build Management (example: Base ClearCase/clearmake)


Evolution


First generation

SCCS (first released in 1973) and DSEE (considered a predecessor of Atria ClearCase), described in 1984, are two other notable VCS software tools. These tools, along with
Revision Control System Revision Control System (RCS) is an early implementation of a version control system (VCS). It is a set of UNIX commands that allow multiple users to develop and maintain program code or documents. With RCS, users can make their own revisions of ...
(RCS), are generally considered the first generation of VCS as automated software tools.


Second generation

After the first generation VCS, tools such as
CVS CVS may refer to: Organizations * CVS Health, a US pharmacy chain ** CVS Pharmacy ** CVS Caremark, a prescription benefit management subsidiary * Council for Voluntary Service, England * Cable Video Store, former US pay-per-view service * CVS F ...
and
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
, which feature a locally centralized repository, could be considered as the second generation VCS. Specifically, CVS (Concurrent Versions System) was developed on top of RCS structure, improving scalability of the tool for larger groups, and later PRCS, a simpler CVS-like tool which also uses RCS-like files, but improves upon the delta compression by using
Xdelta xdelta is a command line program for delta encoding, which generates the difference between two files. This is similar to diff and patch, but it is targeted for binary files and does not generate human readable output. It was first released in 1 ...
instead. By 2006 or so, Subversion was considered to be the most popular and widely in use VCS tool from this generation and filled important weaknesses of CVS. Later SVK developed with the goal of remote contribution feature, but still the foundation of its design were similar to its predecessors.


Third generation

As Internet connectivity improved and geographically distributed software development became more common, tools emerged that did not rely on a shared central project repository. These allow users to maintain independent repositories (or
forks In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
) of a project and communicate revisions via
changeset In version control software, a changeset (also known as commit and revision) is a set of alterations packaged together, along with meta-information about the alterations. A changeset describes the exact differences between two successive versio ...
s.
BitKeeper BitKeeper is a software tool for distributed revision control of computer source code. Originally developed as proprietary software by BitMover Inc., a privately held company based in Los Gatos, California, it was released as open-source software ...
,
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
,
Monotone Monotone refers to a sound, for example music or speech, that has a single unvaried tone. See: monophony. Monotone or monotonicity may also refer to: In economics *Monotone preferences, a property of a consumer's preference ordering. *Monotonic ...
,
darcs Darcs is a distributed version control system created by David Roundy. Key features include the ability to choose which changes to accept from other repositories, interaction with either other local (on-disk) repositories or remote repositories via ...
,
Mercurial Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux. Mercurial's major design goals include high performance and scalability, d ...
, and bzr are some examples of third generation version control systems.


See also

* {{Annotated link, Revision control


References

Version control systems
Software configuration management In software engineering, software configuration management (SCM or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision ...
Software topical history overviews