Page 298 -
P. 298

the course of the project. In addition to the user stories, they are responsible for negotiat-
                          ing which user stories are included in each release, giving feedback on the results of each
                          iteration and, most importantly, filling in the details that are missing from the user stories.
                          Testing in XP consists of unit tests and acceptance tests. All code must have unit tests, and
                          all unit tests must pass before the code can be released. When a bug is found in produc-
                          tion, an additional unit test must be written to guard against it in the future. When soft-
                          ware is delivered, the customer is responsible for running acceptance tests to verify that the
                          user stories are all implemented properly. The customer is responsible for verifying that
                          the acceptance tests are correct—meaning that the unit tests truly verify that the work has
                          been done—and for reviewing the results of the acceptance tests to determine whether
                          the software is ready for release.
                          Many programmers have turned their struggling development teams around using XP.
                          One of its biggest advantages is that it does not require widespread organizational change,
                          which means that it can be implemented by a small group of programmers without getting
                          managers involved. For a team that does not have any project planning or requirements
                          gathering, working in an XP environment will be an enormous relief. XP is an effective
                          way to promote good social and organizational change by putting good development and
                          project management practices in place. It’s no wonder that there are a growing number of
                          professionals who have come to depend on XP for all of their work.
                          One common misunderstanding is that XP is not a disciplined or well-defined process, and
                          that XP and the CMM and ISO 9000 are all somehow mutually exclusive. In fact, XP
                          projects follow a very specific set of rules and practices. It is possible for a good team that
                          has fully implemented XP to pass a CMM or ISO 9000 assessment.

                          On reason XP is effective is that it addresses one of the most common problems in soft-
                          ware development: the hands-off customer. Just as a hands-off client can cause serious
                          problems in an outsourced project (see Chapter 11), serious project problems can happen
                          when a stakeholder does not act as if he has a real stake in the software. It is very easy for
                          a software project to go off track, and it needs constant direction to keep the scope of the
                          project current with the organization’s needs. XP provides an effective solution to this
                          problem by making the stakeholders a part of the development team and requiring them

                          to be involved in the day-to-day work of the project.
                          There are, however, some important drawbacks to XP. It is not clear that XP can be
                          extended to large teams. Some experts feel that XP is difficult to implement with teams
                          that are larger than about 12 people. (There is some research in this area, and a few
                          researchers have reported success on large teams using a modified version of XP.) Another
                          drawback is that it only works on software projects that can be delivered incrementally, or
                          do not have human users. The original C3 project at Chrysler was a payroll system; it’s not
                          clear that XP would work for a different team at Chrysler developing a fuel injection sys-
                          tem or anti-lock brake system.





                   290  CHAPTER TWELVE
   293   294   295   296   297   298   299   300   301   302   303