The architecture of XP
In my perpetual thoughts about what software architecture is, this morning I thought about how the architecture of Extreme Programming is not the twelve practices (which would be true if architecture is defined as the structure of something). Rather, the architecture of XP is the Four Values (simplicity, feedback, communication and courage) and the fifteen principles derived from these values (rapid feedback, assume simplicity, incremental change, embrace change, quality work etc; these are presented in Beck’s XP Explained).
The twelve practices are merely one possible implementation of the XP architecture. Under different circumstances, the implementation will be different. If the default implementation as presented by XP Explained won’t work for you, you’ll have to adjust the practices according to the architecture (that is, according to the values and principles).
I recently blogged about the origins of software architecture (see here) after having read about architecture being defined as the top segment of the “design decision tree” for a system. This would be true only if the early design decisions are concerned with the values and principles for the system under construction.