The Importance of Software Configuration Management

The Importance of Software Configuration Management thumbnail
The Importance of Software Configuration Management

Software configuration management (SCM) involves tools and procedures that control changes, such as version changes, updates or bug fixes, to a software application. Because most software systems are not the result of a single programmer, but are composites created by bringing together individual program modules, any change to an existing software program must accomplish the change objective without affecting other modules in the program.

  1. Purpose

    • Without proper control mechanisms, projects can easily get out of hand and result in program changes that do not meet user or delivery requirements, are of poor quality, and cost more to produce. The purpose for employing software configuration management is to avoid software configuration problems and maximize productivity. It focuses on establishing and maintaining consistent program performance by managing and controlling changes made throughout the product lifecycle. This includes product documentation, as well as internal program changes.

    Process

    • Four core procedures comprise the base of an SCM program. They include identification, control, accounting and audits. Identification is an organizing process that creates a repository to store SCM components, enabling you to locate the right version of the right file at the right time. Control defines who may have access to program files and accounting keeps track of program changes, the person making the change, the date of the change and the reason for the change. Audits provide a means to evaluate and analyze SCM procedures, and make corrections to your control policy if necessary.

    Components

    • An SCM component is a version-specific file that includes project plans, design models, source files, libraries and executables. A single software program can have numerous SCM components if it releases multiple versions, as each component is a separate unit that can operate on its own. SCM components create a subsystem within the program that reduces complexity, makes it easier to discover errors, and facilitates referencing and reusing component items to streamline the change process and ensure consistency in program development.

    Benefits

    • Implementing an SCM policy can help reduce build and integration errors, and increase levels of communication between project managers, testers and developers. SCM policies also allow for more accurate reporting of files that change between program versions and allow project managers access not only to information regarding the change, but also its status, the developer or developers assigned to the project and a time estimate for completion. Code reviews and testing becomes more streamlined as only those component items that change require additional review and testing.

    Considerations

    • A key aspect of SCM is integration. A general rule is to begin integration early and test repeatedly during version development to uncover interface and design errors. While each developer involved in the project requires a workspace arrangement that serves a single purpose, such as editing, building or testing, it is possible for developer isolation to be too complete. As each development task is complete, the developer should integrate it with the version file. This keeps productivity flowing and allows others to view changes as they occur.

Related Searches:

References

Resources

  • Photo Credit Thinkstock Images/Comstock/Getty Images

Comments

You May Also Like

Related Ads

Featured