Change Management
This Practice of Change Management(CM) is indispensable to software development. CM includes management of workspaces, parallel development, integration, and builds.
Main Description

Change Management image

Managing change is more than just checking-in and checking-out files. It includes management of workspaces, parallel development, integration, and builds.

A key challenge when you're developing software-intensive systems is that you must cope with multiple developers, organized into different teams, possibly at different sites, working together on multiple iterations, releases, products, and platforms. In the absence of disciplined control, the development process rapidly degenerates into chaos. In the Rational Unified Process, the Configuration & Change Management discipline describes how you meet this challenge.

Coordinating the Activities and Artifacts 

Coordinating the activities and artifacts of developers and teams involves establishing repeatable procedures for managing changes to software and other development artifacts. This coordination allows a better allocation of resources based on the project's priorities and risks, and it actively manages the work on those changes across iterations. Coupled with developing your software iteratively, this practice lets you continuously monitor changes so that you can actively discover, and then react to problems. 

See the Activity: Manage Change Requests for further information on this topic.

Coordinating Iterations and Releases 

Coordinating iterations and releases involves establishing and releasing a tested baseline at the completion of each iteration. Maintaining traceability among the elements of each release and among elements across multiple, parallel releases is essential for assessing and actively managing the impact of change. 

See the Activity: Manage Baselines Releases for more details.

Controlling Changes to Software 

Controlling changes to software offers a number of solutions to the root causes of software development problems:

  • The workflow of requirements change is defined and repeatable.
  • Change requests facilitate clear communications.
  • Isolated workspaces reduce interference among team members working in parallel.
  • Change rate statistics provide good metrics for objectively assessing project status.
  • Workspaces contain all artifacts, which facilitates consistency.
  • Change propagation is assessable and controlled.
  • Changes can be maintained in a robust, customizable system.