Page 263 -
P. 263

234           PART TWO  MANAGING SOFTWARE PROJECTS


                 9.5   CHANGE CONTROL

                       The reality of change control in a modern software engineering context has been
                       summed up beautifully by James Bach [BAC98]:

                       Change control is vital. But the forces that make it necessary also make it annoying. We
                       worry about change because a tiny perturbation in the code can create a big failure in the
                       product. But it can also fix a big failure or enable wonderful new capabilities. We worry
                       about change because a single rogue developer could sink the project; yet brilliant ideas
                       originate in the minds of those rogues, and a burdensome change control process could
                       effectively discourage them from doing creative work.
                       Bach recognizes that we face a balancing act. Too much change control and we cre-
                       ate problems. Too little, and we create other problems.
         “The art of progress is  For a large software engineering project, uncontrolled change rapidly leads to
          to preserve order  chaos. For such projects, change control combines human procedures and automated
          amid change and to  tools to provide a mechanism for the control of change. The change control process
          preserve change                                               4
          amid order.”  is illustrated schematically in Figure 9.5. A change request is submitted and evalu-
                       ated to assess technical merit, potential side effects, overall impact on other config-
          Alfred North
          Whitehead    uration objects and system functions, and the projected cost of the change. The results
                       of the evaluation are presented as a change report, which is used by a change control
                       authority (CCA)—a person or group who makes a final decision on the status and pri-
                       ority of the change. An engineering change order (ECO) is generated for each approved
                       change. The ECO describes the change to be made, the constraints that must be
                       respected, and the criteria for review and audit. The object to be changed is "checked
                       out" of the project database, the change is made, and appropriate SQA activities are
                       applied. The object is then "checked in" to the database and appropriate version con-
                       trol mechanisms (Section 9.4) are used to create the next version of the software.
                          The "check-in" and "check-out" process implements two important elements of
                       change control—access control and synchronization control. Access control governs
         Confusion leads to
         errors—some of them  which software engineers have the authority to access and modify a particular con-
         very serious. Access  figuration object. Synchronization control helps to ensure that parallel changes, per-
         and synchronization  formed by two different people, don't overwrite one another [HAR89].
         control avoid    Access and synchronization control flow are illustrated schematically in Figure
         confusion. Implement  9.6. Based on an approved change request and ECO, a software engineer checks out
         them both, even if  a configuration object. An access control function ensures that the software engineer
         your approach has to
         be simplified to  has authority to check out the object, and synchronization control locks the object in
         accommodate your  the project database so that no updates can be made to it until the currently checked-
         development culture.  out version has been replaced. Note that other copies can be checked-out, but other
                       updates cannot be made. A copy of the baselined object, called the extracted version,




                       4  Although many change requests are submitted during the software support phase, we take a
                          broader view in this discussion. A request for change can occur at any time during the software
                          process.
   258   259   260   261   262   263   264   265   266   267   268