Software Configuration Management Process, SCM

- one of the key elements in any software development process is that of configuration management. With many people working on files at any given time, software configuration management, SCM is a key element of delivering a project on time and working

Software is a key element of most electronic development projects these days. Embedded software is contained in most items of electronic equipment these days. In addition to this, software is often needed in its own right to run on computers, tablets and other computing platforms.

Software projects often require many people to be working on different areas of the project at the same time. Ensuring engineers have the correct files to work on during the project, and when a release occurs, ensuring the correct files are sued is key to the success of the project.

Software configuration management, SCM, needs to be an integral element of any software project.

Uncontrolled changes to software that is in development are usually one of the major causes of delays and cost increases - unmanaged change is also the largest single cause of failure to deliver systems on time and within budget.

Without software configuration management, a project would soon fall into chaos.

Software configuration management basics

It is possible to define software configuration management in many ways. There are several good definitions that are available.

Software configuration management can be defined as the discipline of identifying the configuration of a system at discrete points in time for the purpose systematically controlling changes and maintaining the integrity and traceability of the software throughout the product life cycle.

Software configuration management key areas

There are six core functional areas for software configuration management:

  • Source code management
  • Build engineering
  • Environment configuration
  • Change control
  • Release engineering
  • Deployment

Main software configuration management tasks

There are a number of core configuration tasks that need to be incorporated into a software project to ensure the correct configuration management of the project or development area.

  • Identify and control every distinct configuration item.
  • Select the exact version of each configuration item that is part of the defined build.
  • Manage and maintain the development.
  • Check and test the integration and production environments to ensure that there is a working control mechanism in place for making changes.
  • Package and release all configuration items in a particular release.
  • Release of the packaged items for test or production.

SCM tools

There are several very good software configuration management tools that are available. These tools are very good, but in addition to this, it is necessary to have an operational process in place that guides the developers to correctly use them. It is not sufficient just to have the tools in place for use

In addition to the tools themselves it is necessary to develop a system where other elements are brought to bear around the tools:

  • Naming conventions - these can be made to indicate not only the file, but its function and state
  • Policies - these act as guidelines indicating how things are implemented.
  • Procedures - these need to be in place to ensure that developers know what to do and how to implement them i.e. how to work with the SCM tool in the environment in which they are working. These should be easy to follow - possibly on a web based system that is easy to access, defining step by step guides of what to do.

If software configuration management is to be successful, then it needs to be easy to use. In this way it will speed up development. If the procedures are difficult to understand or use, then developers are less likely to follow them and the system will not work correctly.

By Ian Poole

Share this page


Want more like this? Register for our newsletter








A flexible approach to better antennas Nick Robins | Alpha Micro Components
A flexible approach to better antennas
For the Internet of Things to become as ubiquitous as forecasts suggests, a lot of Things are going to need Internet connections, many of them wireless.
Whitepapers
Cost-Efficient & Extensible RF Spectrum Monitoring & Management
Discover how to use high-performance portable analyzers, open software and PC integration for field analysis, remote deployments, and efficient and effective spectrum management.

More whitepapers










Radio-Electronics.com is operated and owned by Adrio Communications Ltd and edited by Ian Poole. All information is © Adrio Communications Ltd and may not be copied except for individual personal use. This includes copying material in whatever form into website pages. While every effort is made to ensure the accuracy of the information on Radio-Electronics.com, no liability is accepted for any consequences of using it. This site uses cookies. By using this site, these terms including the use of cookies are accepted. More explanation can be found in our Privacy Policy