Topic > Extreme Programming - 1018

Extreme Programming After reading the word, extreme; it's not uncommon to take a step back and consider what this really means; including the severity it may imply. Severity is no stranger to Extreme Programming, which aims to simplify the software development process in radical ways. Some of the methods implemented by this development style include: pair programming, test-driven development, simple design, customer testing, sustainability, design improvement, and iterative releases. “Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect and courage” (Wells). Defenders of this method claim that success is due to the high consideration of customer satisfaction; since development is incremental in frequent and functional releases; and the customer is always involved. Customer satisfaction can be touted as the most important variable in a development contract. If the customer is satisfied, then the project can be heralded as a success; however, if the client is not, the project and the developer's reputation are at stake. An underlying concept of extreme programming is the Whole Team concept. This means that everyone involved in development, including the customer, is at the same level and part of the same team. While team members may specialize in certain areas, they all contribute in other areas when needed. Treating the customer as part of the team allows them to help adapt the product to their needs, as well as providing satisfaction through visible (extreme) progress. The planning game consists of two phases, which address the questions of what will be accomplished by the deadline and what should be done after that. This planning is intended to guide the project, rather than predict exactly what will be needed or how long it will take. Release planning starts with