Software Configuration Management
Overview
Let’s learn about Software Configuration Management (SCM) in this tutorial. SCM is a discipline in Software engineering for managing changes to software products using standard procedures and SCM tools. It is the organized control of changes in software product development.
Software Configuration Management
Software Configuration Management (SCM) is a set of practices and tools used by software development teams to manage changes to software systems throughout SDLC.
A configuration item( CI ) is an item like (a service component, an infrastructure element, files, etc) that needs to be managed for successful project delivery.
SCM activities comprise several activities:
- Change Management
- Version Control
- Build Management
- Release Management
Change management
Change management is the process of managing changes to software systems. Changes can be changes in requirements, new features, bug fixes, source code changes, etc. It involves activities such as documenting change requests, assessing their impact, prioritizing changes, and coordinating their implementation. Change management helps ensure that changes are properly reviewed, tested, and integrated into the software system and that their impact on other components or dependencies is assessed.
Version control
Version control is the process of managing changes to source code and other software artifacts. It allows developers to work collaboratively on a software project, keeping track of changes made by different team members, and enabling the ability to revert to previous versions if needed. It is also known as Source control or Revision control.
Build management
Build management involves the process of compiling source code and other software artifacts into executable software components or packages. It includes tasks such as compiling code, creating libraries, linking components, and generating executable files, jars, or installable packages. Build management helps ensure that software is built consistently and reproducibly and that dependencies are managed effectively.
Release management
Release management is the process of planning, coordinating, and executing the release of software products. It involves activities such as packaging software, creating release notes, managing version numbers, and deploying software to production or other environments. Release management helps ensure that software is released in a controlled and coordinated manner, and that releases are properly documented and communicated to stakeholders.
SCM Tools
Some popular SCM Tools are as follows:
- Git
- Subversion (SVN)
- Mercurial
- Perforce
- Puppet
- SaltStack
More information:
https://en.wikipedia.org/wiki/Software_configuration_management