Page 299 -
P. 299

But the most important drawback to XP is that the customer must always be available.
                          There are many environments in which this is a very difficult requirement to meet. The
                          users and stakeholders in most organizations have their own jobs to do, and it would be
                          unreasonable to require that they devote all of their working time to a software project.
                          Requirements elicitation (see Chapter 6) requires specialized skills and people, which
                          often makes it difficult to implement in small organizations, but it is much less demanding
                          of the time of people outside of the engineering team. And once the requirements are
                          written, they can be reviewed for defects. While it’s generally not possible to catch every
                          defect before the programming begins, it is possible to find many of them—and it is much
                          faster to fix defects on paper than it is to fix them in software, especially when they are
                          not caught until late in the project.
                          XP proponents often say that face-to-face communication is superior to written communi-
                          cation, and that XP’s reliance on face-to-face meetings and very little documentation frees
                          the process from the “bureaucracy” of requirements documentation. However, reliance on
                          face-to-face communication for detailed requirements introduces its own problems. Defin-
                          ing the behavior of software is a particularly complex and error-prone process. It is very
                          easy for people to reach misunderstandings when talking about software behavior. This is
                          especially risky when a customer has been involved as a project team member since the
                          beginning of the project. The customer’s expectations will often evolve along with the
                          project, as a side effect of the influence of the rest of the programming team. The result is
                          that the customer is more likely to accept the software, even if it does not fully meet the
                          needs of the people in the customer’s organization who were not on the project team. This
                          sort of tunnel vision is much easier to avoid when the customer keeps his eye on his task
                          and his organization’s needs rather than on the details of the project and the developers.
                          Drawbacks aside, for projects in which the circumstances and team are compatible with
                          XP, it is a very powerful tool. Many project teams across the world have made a huge dif-
                          ference in their projects by adopting some or all of the XP practices.

                                    NOTE
                                    Additional information about Extreme Programming can be found in
                                    Extreme Programming Explained: Embrace Change (2nd Edition) by Kent

                                    Beck (Addison Wesley, 2004).

                          Rational Unified Process
                          There are many complete software processes that are available and ready to be adopted out
                          of the box. Typically, such a process will include a complete set of activities to be performed
                          over the course of the entire software project. These activities usually include scope defini-
                          tion, requirements engineering, architecture, design, programming, and testing activities.
                          One of the most popular off-the-shelf processes is the Rational Unified Process (RUP).







                                                                                     PROCESS IMPROVEMENT  291
   294   295   296   297   298   299   300   301   302   303   304