Extreme Programming Perspectives
In recent years, XP has been advocated as an appropriate programming method for the high-speed, volatile world of Internet and Web software development. XP can be characterized as a "lightweight" or "agile" methodology. Although XP is a disciplined process, some have used it in arguments against rigorous models for software process improvement, such as the Capability Maturity Model for Software, a five-level model that prescribes process improvement priorities for software organizations, developed by the Software Engineering Institute (SEI). Many organizations moving into e-commerce have existing CMM-based initiatives (and possibly customers demanding mature processes) and want to know whether and how XP can address CMM practices adequately. This chapter summarizes both XP and CMM and critiques XP from a CMM perspective. Although XP can be characterized as a lightweight methodology that does not emphasize process definition or measurement to the degree that models such as the CMM do, a broad range of processes can be considered valid under the CMM. As stated in the opening paragraph of this chapter, the conclusion is that agile methodologies such as XP advocate many good engineering practices, although some practices may be controversial and counterproductive outside a narrow domain, and that when thoughtfully implemented in an appropriate environment, XP addresses many CMM Level 2 and 3 practices. For those interested in process improvement, the ideas in XP should be carefully considered for adoption where appropriate in an organization's business environment, just as organizations considering XP should carefully consider the management and infrastructure issues described in the CMM. |