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
   124   125   126   127   128   129   130   131   132   133   134