Quick search:

What is extreme programming

Extreme Programming (XP) is a lightweight, efficient, low risk, flexible, scientific and fun way to develop software.*

Some key phrases: "The simplest thing that could possibly work", "Unit test first", "Pair programming", "Refactor whenever and wherever possible", "No overtime", "Small releases", "Travel light", "Embrace change".

XP method for software development. Though it does not explicitly say so, in practice it assumes object orientation. Most important difference with other OO software development methods is its commitment to adapt software to ever changing requirements, especially during development. By building flexible software, by automated testing and by constant oral communication between those involved.

Fundamental to XP is its analysis of the costs of changing already built software in response to changing requirements: "The software development community has spent enormous resources in recent decades to reduce the cost of change (..). What if all that work on languages, databases and whatmore actually got somewhere? What if the cost of change didn't rise exponentially over time, but rose more slowly, eventually reaching an asymptote? (..) It is the technical premise of XP."**

A premise is something you can believe it or not. But this one has an interesting dynamic: you can try to make it happen. You can follow software development practices that may slow the cost of change. PhpPeanuts' choice to do scaffolding dynamically was made to slow the cost of change and shorten the feedback cycle. A short feedback cycle reduces the risk of change. Together shifts the balance in the design or refacor dilemma in favor of refactoring, but as a framework it also offers a basic application architecture that paves the way for the application design.

For more information on XP see www.extremeprogramming.org and www.xprogramming.com. But better is to read the following books:

  • Extreme Programming Explained: Embrace Change, Kent Beck, 1999, ISBN 201-61641-6,
  • Refactoring, Improving the Design of Existing Code, Martin Fowler, 1999, ISBN 0-201-48567-2

* Extreme programming explained, preface XVII.
** Extreme programming explained, chapter 5, Costs Of Change, p. 23