A software product typically consists of many programs and documents, and these items change and evolve before they are ready for the final system. For this reason, software configuration management is an important issue.
Following are some of the lessons from the CM process followed at Infosys:
Define the CM process so that it lets projects handle concurrent updates, undo a change, obtain the latest version of a program, determine the status of a program, and prevent unauthorized changes. Use version control, change request tracking, and library management mechanisms to support these capabilities.
Develop a CM plan separately from the project management plan. The CM plan must specify the environment, configuration items and their naming convention, storage areas for the items in different states, and the method of managing changes to the items, including version numbering and reconciliation, access control, and release and backup policies.
Perform CM audits and status checking to ensure that the CM plan is being followed.
With respect to the CMM, the activities discussed in this chapter satisfy many of the requirements of the Software Configuration Management KPA of level 2. Implementation methods for requirement changes satisfy some aspects of the Requirements Management KPA. The baselining and control of work products other than code also satisfy the baselining requirements of KPAs such as Requirements Management and Software Project Planning.