Page 289 -
P. 289

“accepting” a new process will not hesitate to abandon it if they are put under any exter-
                          nal pressure to do so—especially if they had no input or feedback when it was developed.

                          This is no way to convince someone to change the way he does his job. But it is, unfortu-
                          nately, a representative example of the way some people approach process improvement.
                          They treat the programming team as a bunch of immature children who can barely do the
                          work assigned to them. Or they treat the team members as infidels and unbelievers, lead-
                          ing the team to wonder how these religious lunatics got into the office. Then the experts
                          are surprised that the team members—who consider themselves and their past projects
                          successful, even if they weren’t perfect—reject this new process improvement effort.

                          The truth is that programmers love being the “go-to” person. They love having lots of suc-
                          cesses, and they love when users can go directly to them without having to bother with
                          documentation and testing in order to get programs written. There is a lot of job satisfac-
                          tion in doing things this way. And in cases in which the software is all in the same area of
                          the organization’s business and repeatedly draws on the same knowledge of the users’
                          needs, a team can be highly successful working like this. If you put yourself in the pro-
                          grammers’ shoes, you’ll realize that you would need a really good reason before you
                          would be willing to change. (See Chapter 9 for more information on why changes like this
                          often fail, and how to successfully make changes in your organization.)

                          If Things Are So Great, Why Change?
                          If there are no complaints about the way the team is building software, then there’s no
                          reason to change! If all your organization needs from you is that you assign one or a few
                          programmers per project, and if you can always guarantee that experts, users, and stake-
                          holders will be available to the programmer whenever she needs them, then it might
                          make sense to keep things flexible and variable and change them only as needed.

                          However, few teams are really in this situation. At some point, most teams will need to grow
                          in size or capability. This can mean taking on more programmers and solving more complex
                          problems. Without a formal process, organizations often run into problems when they try to
                          expand the team or get people to work together on larger projects. For example, the pro-
                          grammer who was working on one project could be needed on another team, or could leave

                          the organization altogether; this makes it difficult to expand the team because they have lost
                          critical knowledge required to build and maintain the software. If there is no formal process
                          in place, there is no guarantee that knowledge was ever written down.

                          The most serious problems in expanding a team involve communicating the needs of the
                          organization, users, and stakeholders, and setting the expectations of the organization about
                          what will be delivered, when it will be delivered, and how much it will cost. Having a formal
                          process in place ensures that there is consistency between projects, so an expanding team
                          can rely on a library of past estimates, guidelines for working together, and other important
                          tools to help them work. They do not have to keep reinventing the wheel; for every problem
                          that has been solved before in the organization, the solution is available to them.





                                                                                     PROCESS IMPROVEMENT  281
   284   285   286   287   288   289   290   291   292   293   294