Configuration Management (CM) is about uniquely identifying, controlling storage, controlling changes, and reporting status of software products, product components and selected intermediate work products during the system’s life cycle.
CM encompasses the everyday tasks within a software organization, whether development or maintenance, to establish and maintain the integrity of work products in a project throughout the project life cycle. CM involves identifying the configuration of developed work products, hence assuring the reliability of products delivered to customers by systematically controlling changes to the identified work products.
This chapter is to define a method for SMEs to use in providing configuration management of software system and/or software development projects.
This set of goals that will be satisfied by performing this process
· Goal 1: Baselines of identified work products are established and properly maintained.
· Goal 2: Changes to work products under configuration management are tracked and controlled.
· Goal 3: Integrity of baselines is established and maintained.
Policies governing the configuration management procedures and activities are as follows
· Establishing and maintain baselines for identified work products.
· Ensure the tracking and control of changes to all baselined items.
· Ensure and maintain integrity of all baselined items.
· Provide accurate status and configuration data to relevant stakeholders.
The configuration management process consists of five procedures, namely planning for configuration management, performing configuration identification, performing change control, performing status accounting, and performing configuration audits. With the exception of the planning procedure, all CM procedures are repeated continuously while the process is being executed and extends throughout the project life cycle. CM is a supporting process, the interaction between its procedures and other project activities is carried out by either direct lead-in or calling. The following is a list of the procedures in the CM process.
The objective of the CM planning procedure is to develop the required guidance for the deployment of the configuration management procedures. This procedure involves the identification of the project configuration controller, developing the CM plan and ensuring its integration with the overall project plan.
Establishing CM Environment
The purpose of this procedure is to establish the configuration management system including the storage media, system, and the tools for accessing the configuration system. The procedure will produces the required infrastructure for the overall development project.
Maintaining CM Environment
The purpose of this procedure is to maintain the configuration management system includes the storage media, system, and the tools for accessing the configuration system. The procedure will produces the required infrastructure for the overall development project.
Functional Configuration Audit
The purpose of this procedure is to guide the performance of the functional audit activities on the configuration management system including the storage media, system, and the tools for accessing the configuration system. The procedure, when performed, ensures the logical consistency between the contents of the configuration management system and approves the readiness for performing the baselining. This audit is not related to the quality assurance audit. The quality assurance audit is just seeking the compliance with predefined standards, while this audit is seeking the integrity and compliance to the requirements specification.
Physical Configuration Audit
The purpose of this procedure is to guide the physical audit activities on the configuration management system including the storage media, system, and the tools for accessing the configuration system. The procedure, when performed, ensures the physical existence and consistency between the contents of the configuration management system and approves the readiness for performing the baselining. This procedure is not only performed before the baselining, as in the functional audit case, but also can be done in any time to ensure the required level of integrity.
The purpose of this procedure is to produce baselines from the identified CIs. The procedure, when performed, ensures the existence and existence’s announcement of the baselines that will be considered as a starting point for further development phases in the product development life cycle. The quality of the baseline is completely dependent on the functional and physical audits done before the baselining.
The purpose of this procedure is to guide the performing of save changes to any stable work product. The change control procedure starts by raising a change request, then be being evaluated, implemented and verified. The impact of these changes should be estimated and then evaluated at the end of the project at the project closure phase.
Due to SMEs’ nature (small number of developers, relatively small project sizes, etc.), the process defined in this document assumes the following.
· Low level of formality could be adopted.
· Software products can be compiled and linked manually.
This is a set of risks which may hinder the implementation of the process.
· Lack of management support.
· Loss of interest by project team members due to process formality.
· Process being viewed as a bureaucratic overhead to the project.
· Using a CM tool with less features and sophistication than required.
· The change control becomes a bottleneck controlling the development process beyond the planned role for the CC.
· Delegation of CM activities to whomever is available.
· Use of decentralized CM repositories. A key concept behind the CM is to share information, using decentralized model might challenge the correct deployment of that key concept.
· The Project Management Process will plan, monitor, control and measure all activities in the Configuration Management Process.
· The configuration management process will provide the infrastructure to all procedures in the Product Development Process.
· The Peer Review Process will provide a clear methodology for reviewing all critical artifacts during the performing of the process.
· The Quality Assurance Process will audit all critical process’s activities and work products.