Configuration management encompasses the administrative activities concerned with the creation, maintenance, controlled change and quality control of the scope of work.
A configuration is the set of functional and physical characteristics of a final deliverable defined in the specification and achieved in the execution of plans. Configuration management can be regarded as asset control and is essential whether or not multiple versions of a deliverable will be created. At its simplest, configuration management is version control.
Configuration management is an invaluable tool for providing control of the deliverables and avoiding mistakes and misunderstandings. It is an integral part of quality management.
The process ensures that the deliverable meets the specified performance criteria. It also ensures that adequate process is in place to provide continuing maintenance for the duration of the product life cycle.
There are five activities within a configuration management process:
- configuration management planning: A configuration management plan should describe any specific procedures and the extent of their application during the life cycle. The plan should also identify roles and responsibilities for carrying out configuration management. Configuration management must be planned in order to be effective, predictable and repeatable;
- configuration identification: This involves breaking down the work into component deliverables (configuration items), creating a unique numbering or referencing system and establishing configuration baselines;
- configuration control: This ensures that all changes to configuration items are documented. An important aspect is the ability to identify the interrelationships between configuration items. This is essential information for the ‘review’ and ‘assessment’ steps in the change control process;
- configuration status accounting: This tracks the current status of a configuration, providing traceability of configuration items throughout their development and operation;
- configuration verification and audit: This is used to determine whether a deliverable conforms to its requirements and configuration information. Typically, an audit is undertaken at the end of a phase, stage or tranche.
A configuration audit will take one of three forms:
- a physical audit looks at the relevant elements of a configuration item and will confirm that the item meets its specification. It will check the results of quality control and confirm that all the necessary test documentation has been completed;
- a functional audit of a configuration item will check that it performs the function for which it was designed;
- a system audit checks that the configuration management system is working and able to support the process and perform the necessary functions.
Configuration management is very closely aligned with change control. Together, these two processes ensure that deliverables meet the required specification, any changes are beneficial changes and there is a complete audit trail for the development of each deliverable.
While the configuration is primarily concerned with the products of a project or programme, it should also be applied to key management documents. For example, a document such as a business case should be subject to version control and audit to ensure that it is fit for purpose and all changes are recorded.
As work is completed, responsibility for maintaining deliverables passes to business-as-usual. The project or programme management team is responsible for ensuring that configuration management information is suitable for transfer to those who will be maintaining the products long after the project or programme has been closed.
Most configuration management is performed at project level because that is where the most tangible deliverables are produced. The configuration management plan will probably form part of the quality management plan but may be separate in large or complex projects.
The product breakdown structure (PBS), plus detailed descriptions of each product, becomes the configuration. Once this is baselined it is subject to formal change control and configuration management.
In Agile projects the initial configuration will be very flexible and updated frequently. The lack of a full and detailed configuration at the start makes configuration management of vital importance in this highly dynamic environment.
A key objective of configuration management is to ensure that all component products fit together and function properly in combination. Therefore, each project and activity within the programme must adopt a consistent approach to managing configurations. This makes it much simpler to assess whether an upgrade or change to the products of one project will have any knock-on effect for the products of another project, or on the programme’s eventual benefits.
To ensure a consistent approach, it is normal to publish a programme-level configuration management plan and ensure its effective implementation by all project and business change managers.
Accurate recording of the test status is especially important when products from different projects are combined. Particularly in safety critical, secure or related environments, a key role of the programme is to ensure that there are no gaps in the chain of quality control, testing and record keeping throughout all the products, intermediate assemblies and testing regimes that might compromise the final programme-level deliverables.
It is beneficial for all projects and programmes within a portfolio to operate consistent configuration management systems. Where a portfolio is made up of projects and programmes of similar technical content, a portfolio view of the collective configurations can highlight reusable components.
The portfolio itself is unlikely to produce any configuration items other than key management documents.