This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "History of software configuration management" – news · newspapers · books · scholar · JSTOR (January 2007) (Learn how and when to remove this message) This article may need to be rewritten to comply with Wikipedia's quality standards. You can help. The talk page may contain suggestions. (November 2023) (Learn how and when to remove this message)

The history of software configuration management (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, and other media. The first software configuration management was a manual operation. With the advances in language and complexity, software engineering, 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.[1] Industry-wide practices were offered as solutions, either in an open or proprietary manner (such as Revision Control System). With the growing use of computers, systems emerged that handled a broader scope, including requirements management, design alternatives, quality control, and more; later tools followed the guidelines of organizations, such as the Capability Maturity Model of the Software Engineering Institute.

Timeline

Background

Until the 1980s, SCM could only be understood as CM applied to software development.[5] 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.

Evolution

First generation

SCCS (first released in 1973) and DSEE (considered a predecessor of Atria ClearCase), described in 1984,[6] are two other notable VCS software tools. These tools, along with Revision Control System (RCS), are generally considered the first generation of VCS as automated software tools.[7]

Second generation

After the first generation VCS, tools such as CVS and Subversion, 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,[8] a simpler CVS-like tool which also uses RCS-like files, but improves upon the delta compression by using Xdelta 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.[according to whom?] Later SVK developed with the goal of remote contribution feature, but still the foundation of its design were similar to its predecessors.[7]

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) of a project and communicate revisions via changesets. BitKeeper, Git, Monotone, darcs, Mercurial, and bzr are some examples of third generation version control systems.[7]

See also

References

  1. ^ "1988 "A Guide to Understanding Configuration Management in Trusted Systems" National Computer Security System (via Google)
  2. ^ "Obsolete: Configuration Management Frequently Asked Questions".
  3. ^ Goetz, Martin (3 May 2002). "An Interview with Martin Goetz" (Interview). Interviewed by Jeffrey R. Yost. Washington, D.C.: Charles Babbage Institute, University of Minnesota. pp. 5–7. Retrieved 26 May 2023.
  4. ^ Oral history interview with Joseph Piscopo, Charles Babbage Institute, University of Minnesota. Piscopo founded Pansophic Systems in 1969 and led it until his retirement in 1987. Interview discusses the development of Panvalet and the acquisition of Easytrieve.
  5. ^ J.K. Buckle (1982). Software Configuration Management. ISBN 0-333-30719-4.
  6. ^ Leblang, David B.; Chase, Robert P. (May 1984). "Computer-Aided Software Engineering in a distributed workstation environment". ACM SIGPLAN Notices. 19 (5): 104–112. doi:10.1145/390011.808255.
  7. ^ a b c Raymond, Eric. "Understanding Version-Control Systems (DRAFT)". www.catb.org. Retrieved 13 February 2017.
  8. ^ MacDonald, Joshua P (9 May 2004). "PRCS, the Project Revision Control System". Retrieved 29 October 2021.