8.1. Extreme Programming Basics

As previously mentioned, XP is a relatively new software development process that enables developers to rapidly create high-quality code. In this instance, you may define "quality" as a code base that meets its specification. XP focuses on implementing simple designs, communicating between developers and customers, constantly testing your code base, refactoring to accommodate specification changes, and seeking customer feedback. XP tends to work well for small to medium-size development efforts in environments that have frequent specification changes and where near-instant communication is possible.

XP differs from traditional development processes in a several ways. First, it avoids the large-scale project syndrome in which the customer and the programming team meet to design every detail of the application before coding begins. Project managers know this approach has its drawbacks because customer specifications and requirements constantly change to reflect new business rules or marketplace conditions. For example, the finance department may want payroll reports sorted by processed date instead of check numbers, or the marketing department may determine that consumers will not buy product XYZ if it doesn't send e-mail. XP planning sessions focus on collecting application requirements, not designing the application.

Another difference with the XP methodology is that it avoids coding unneeded functionality. If your customer thinks the feature is ...

Get The Art of Software Testing, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.