Page 129 -
P. 129
Establish a Change Control Board
The most important part of change control is a change control board (CCB). There are cer-
tain people in the organization who have the power to change the scope of the project.
Usually there is a senior manager or decision-maker who has the authority to make
sweeping changes at will; sometimes there are several people in this position. For change
control to be effective, these people must be part of the CCB.
In addition, the CCB should contain people from the project team:
• The project manager
• An important stakeholder or user (or someone who understands and advocates the
team’s perspective)
• Someone who understands the effort involved in making the change (usually, this is a
representative from the programming team)
• Someone who understands the engineering decisions that the team makes over the
course of the project (a design team member, requirements analyst, or, if neither is
available, a programmer who participated in the design of the software)
• Someone who is familiar with the expected functionality of the software and with the
behavior being discussed for each individual change (typically a tester)
This last person fulfills a very important role in the change control process. Typically,
she is involved in the tracking of changes and defects in the product. When a bug is
reported, part of her job is to figure out whether it is a defect (meaning that the software
does not behave the way its specification requires it to behave) or a change (meaning
that the software behaves as designed, but that this behavior is not what the users or
stakeholders need).
Changes will generally be reported through the defect tracking system. (If there is cur-
rently no defect tracking system in place, establishing one will have a far greater impact on
controlling changes than a change control process will—see Chapter 8). The job of the
tester on the CCB is to understand the change: the behavior specified in the requirements,
why this behavior is incorrect, and how and why the software should be changed.
Before the project begins, the list of CCB members should be written down and agreed
upon, and each CCB member should understand why the change control process is
needed and what her role will be in it. The project manager must ensure that everyone
buys into the idea of change control and agrees that it is their job to evaluate each
change before the software project plan can be altered. The project manager must also
reassure them that the programmers and other team members cannot deviate from the
plan. This agreement between CCB members is the most important part of the change
control process.
SOFTWARE REQUIREMENTS 121