Thursday, July 13, 2006

Extreme Programming

According to the Agile Manifesto, agile development processes tend to emphasize:
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
Yet different forms of agile emphasize these things to a different degree. "Extreme programming" lies on the side of the spectrum that places a great deal of emphasis on all of them. It does so by prescribing a number of "extreme" practices.

Unfortunately, many people distort what agile development is. They claim, for example, that it calls for "hacking" the product together without eliciting or documenting any product requirements up front. Yet even extreme programming calls for an up-front requirements effort.

To quickly gain an accurate understanding of what extreme programming is all about, I suggest having a look at this site. It succinctly describes the practices and philosophy of extreme programming.

No comments: