Evolutionary Design In Extreme Programming (XP)
Evolutionary Design (XP) advocates evolutionary design methods in the place of planned design.
Extreme Programming (XP) rejects significant effort in up-front design, in favor of a more evolutionary approach.
Evolutionary design means that the design of the system grows as the system is implemented.
XP uses the software change curve. The change curve says that as the project runs, it becomes exponentially more expensive to make changes.
The fundamental assumption underlying XP is that it is possible to flatten the change curve enough to make evolutionary design work using a set if enabling practices.
At the core are the practices of Testing, and Continuous Integration and Refactoring.
Without the safety provided by testing the rest of XP would be impossible.
Continuous Integration is necessary to keep the team in sync, so that you can make a change and not be worried about integrating it with other people.
Together these practices can have a big effect on the change curve.[Learn More ...]