Page 102 -
P. 102

team fails to take a stakeholder’s needs into account and fails to build a needed feature
                          into the software. Waiting until after the software is built to discover these problems
                          results in an enormous amount of work to fix defects that should have been caught before
                          a single line of code was written.
                          Problems Are Found Too Late
                          There are many problems that can be avoided by having the team adopt vision and scope
                          documents, project plans, software requirements specifications, and other project docu-
                          ments. But what happens when the team doesn’t catch an error in one of these docu-
                          ments until the software is built?

                          One of the most common causes of project failure is that requirements contain a defect
                          that is not caught until much later in the project. Trying to fix that defect after the soft-
                          ware is built can be so costly that it can destroy the project entirely. For example, suppose
                          that a team member writes a use case document to describe a critical feature. The docu-
                          ment is emailed around to the team, and everyone reads it. However, some of the readers
                          are very busy, so they only skim it and see that it looks about right. Others see problems,
                          but don’t want to embarrass the author by bringing them up. A few think that they found
                          very obscure problems and don’t want to embarrass the other readers who they think
                          would not have come up with the problem.
                          Some teams try to find defects by mailing documents around to the team, with no real
                          expectations of what the team is supposed to do with each document. After the author
                          mails the document out, usually nobody responds to the email for a few days. Responses
                          trickle in over the course of the following week. Some of them point out serious flaws, but
                          most of them do little more than point out typos and minor wording changes. In the
                          meantime, the designers start their work to avoid sitting around doing nothing. Eventu-
                          ally the user interface, architecture, and software are built. The product is passed down to
                          the QA team, who start testing the build. They haven’t been a part of the development of
                          the software at all, and have only been talking to the users and stakeholders, putting
                          together a test plan to ensure that the software does everything that they expect it to.
                          Within a few days, the QA team discovers a problem: there is a feature that does not work
                          the way the users need it to work.

                          When this happens, the entire project team is brought together in a meeting, and a split
                          quickly forms. The QA lead and stakeholder insist that the software is broken. The
                          requirements analyst, design lead, and programming lead insist that there is nothing
                          wrong. They finally start going through the documents and find that the software does,
                          indeed, meet all of the requirements laid out in the relevant use case. But the use case is
                          wrong—it does not describe what the users need the software to do. It’s clear to everyone
                          present that fixing the problem will be a major endeavor, and that the project will be
                          delayed for a very long time. The team built software that was solid, well-built, and func-
                          tional—but they built the wrong software.






                   94  CHAPTER FIVE
   97   98   99   100   101   102   103   104   105   106   107