Page 133 -
P. 133

This is a difficult situation for any project manager. It’s never a good idea to try to force the
                          team to accept requirements (or any tool, technique, or practice). But when software
                          requirements are the solution to the team’s most pressing problems, it’s up to the project
                          manager to convince the team to adopt good requirements practices. Chapter 9 gives
                          many examples of the kinds of problems a project manager may face, and suggests strate-
                          gies to deal with those problems. With requirements, however, there are a few additional
                          points that may make it easier for a project manager to convince the team to adopt good
                          practices.

                          Sell the Designers and Programmers First
                          Software architects, designers, and programmers who are used to working with software
                          requirements tend to find them so important that it’s difficult to imagine working without
                          them. But if they have never used requirements before, they instead tend to be resistant to
                          working with them. To the uninitiated, working with requirements may sound restrictive
                          and stifling. In organizations where this is the case, the problem is often compounded by
                          senior managers who do not have as solid a grasp on how their software is developed as
                          they should, and who will be very responsive to any complaints from their technical peo-
                          ple. A few negative comments from key programmers can be enough to pull the plug on
                          an entire requirements effort. Even worse, when an organization has not really embraced
                          the idea of software requirements, there is a real danger that the programmers will simply
                          say “yes” to any SRS that comes across their desks, only to ignore or change any require-
                          ments that they dislike when they actually build the software.
                          The key to using software requirements effectively is to help everyone in the organization
                          understand how those requirements will help them build better software. A project man-
                          ager who is looking to implement requirements should work to bring the designers and
                          developers on board. If a designer feels threatened by the changes, the project manager
                          should show him how the requirements define only the behavior of the software, and not
                          the design. A programmer may object that her creativity is being stifled; maybe she can be
                          shown that the requirements will help prevent the kinds of last-minute changes that cost
                          her weeks of work and made a mess of her code on her last project.

                          It’s not hard to communicate the benefits of change control to the engineering team,

                          because the change control process addresses some of the team’s most common com-
                          plaints. Most software engineers who are working in an organization that does not have
                          good requirements practices are always shooting at moving targets. Changing require-
                          ments are a daily fact of life, and even small projects feel like they rapidly spiral out of
                          control because of uncontrolled changes. A project manager can offer to control these
                          changes, so that the team can concentrate on building a good product once rather than
                          rebuilding a poor one over and over again. Once the programmers have been convinced of
                          that, it’s not hard to show them how software requirements are clearly a means toward
                          that end.
                          However, it is important that the project manager does not gloss over the fact that when a
                          designer or programmer is working to a set of requirements, it creates a more restrictive


                                                                                   SOFTWARE REQUIREMENTS  125
   128   129   130   131   132   133   134   135   136   137   138