Page 128 -
P. 128

Requirement functionality
                            Is every requirement correct?
                            Are all inputs and outputs clearly specified?
                          Requirement performance
                            Are all nonfunctional requirements that constrain performance (speed, resource utiliza-
                            tion, etc.) clearly and quantitatively defined?
                          Requirement testability
                            Is each requirement testable?

                                    NOTE
                                    More information on SRS development can be found in Managing Soft-
                                    ware Requirements: A Use Case Approach by Dean Leffingwell and Don
                                    Widrig (Addison Wesley, 2003) and Software Requirements by Karl
                                    Wiegers (Microsoft Press, 2003).

                          Change Control

                          Throughout the course of most projects, many of the people involved come up with
                          changes to the planned software that could be implemented. Many poorly managed soft-
                          ware projects have been driven to failure because the designers, developers, and testers
                          had to repeatedly switch directions because of uncontrolled changes. Changes originate
                          from all over the project: a stakeholder may discover a new need that should be addressed,
                          a senior manager could change his mind about a feature, a programmer could figure out a
                          way to combine behaviors to make the software more efficient, a tester could discover
                          conflicting requirements, etc. Some of these changes will be worth doing, while others
                          should probably be scrapped. But every change will come with a sense of urgency, and the
                          project manager needs a way to sort through them to make sure that only the right
                          changes are made.
                          Change control is a method for implementing only those changes that are worth pursuing,
                          and for preventing unnecessary or overly costly changes from derailing the project.
                          Change control is essentially an agreement between the project team and the managers

                          that are responsible for decision-making on the project to evaluate the impact of a change
                          before implementing it. Many changes that initially sound like good ideas will get thrown
                          out once the true cost of the change is known. The potential benefit of the change is writ-
                          ten down, and the project manager works with the team to estimate the potential impact
                          that the change will have on the project. This gives the organization all of the information
                          necessary to do a real cost-benefit analysis. If the benefit of the change is worth the cost,
                          the project manager updates the plan to reflect the new estimates. Otherwise, the change
                          is thrown out and the team continues with the original plan.

                          Changes that seem “small” because they are easy to describe in words can have an unex-
                          pectedly large impact on the project. Even the most carefully planned and tracked project
                          can be thrown off course by unexpected changes. A project manager can use change con-
                          trol to keep this from happening.
                   120  CHAPTER SIX
   123   124   125   126   127   128   129   130   131   132   133