Page 248 -
P. 248

Some senior managers feel that they have navigated more difficult problems than whether
                          or not to put the code under source control or add another round of testing. These things
                          seem like details to them, and they don’t feel that they need to read a book to figure them
                          out. To someone with this attitude, the very fact that you are concerned about these
                          “details” makes you seem like an alarmist—you are up in arms about something that they
                          consider very minor. Or, even worse, they feel that they have done a fine job of building a
                          software organization, and are insulted that you think that you can make it better by
                          introducing changes.
                          If an organization is in the software business, the people running that organization need to
                          understand the details of making software. Making those decisions is uncomfortable for a
                          senior manager with little software experience: it is hard to make sound decisions about
                          building software when one has only a simple, high-level view of software design, pro-
                          gramming, and testing.

                          One common senior-management response to this problem is to attempt to delegate—
                          probably to you, since you have read a book about it and seem to know what you are talk-
                          ing about. Unfortunately, this is a shallow commitment that can cause its own problems. If
                          your boss does not understand the goals of the improvements you want to make or the
                          reasons behind them, he will not make consistent decisions. The actions that you take in
                          implementing new practices on your project will impact other people: they will create
                          additional work for some of them, and many will perceive that you are taking away some
                          of their power, flexibility, or freedom. And, in some poorly run software organizations,
                          there may be people assigned to software tasks who are not very good at those tasks; they
                          might prefer not to have their work measured or analyzed. If they see you as an inter-
                          loper, they will complain to your boss. If he does not understand why you are doing what
                          you are doing, all he will see is conflict—conflict that you created with the changes that
                          you made. Since he did not take the time to understand the benefits of your actions, he
                          will simply blame you for making changes and causing conflict. Your improvement effort
                          will grind to a halt.

                          The solution—and it is not an easy one—is that upper management must be better edu-
                          cated about the details of your project. The person who has the authority to tell you (and

                          everyone else on your level) to undertake a project should understand the purpose behind
                          every step in the software process. This means more than just understanding that software
                          needs to be designed, developed, and tested. He needs to know why the software is being
                          developed that way.
                          It means that if, for example, you are trying to implement inspections, then the senior
                          manager must understand what an inspection is, what is being inspected, what kinds of
                          defects it will find, why those defects are there, who needs to attend the inspection meet-
                          ings, and what will happen if the inspection is skipped—and he needs to understand this
                          before the inspections are implemented. He must be sold on the idea. If he does not agree
                          that this is the most efficient and effective way to develop software, he will fold the first
                          time someone decides that inspections are “bureaucratic,” unnecessary, or somehow get-



                   240  CHAPTER TEN
   243   244   245   246   247   248   249   250   251   252   253