Embrace Change Continuously

The ultimate goal of XP. The following is excerpted from ExtremeValues:


I think Testing/Feedback can be regarded as forms of communication, with the code rather than with a person. So is ContinuousIntegration IMHO (actually that one is both at once, and so is PairProgramming). Or perhaps I should describe ContinuousIntegration as communicating through the code whereas Testing is communicating with the code (and PairProgramming does both at once).

What I think is explicit in much of XP but not easily apparent in the values as expressed here is the notion of High-Frequency! Its not just communication that's important to XP, its ultra-high-frequency communication (with people & code)! That's why the integration is "seemingly continuous" because its done in a matter of hours or minutes instead of days or weeks. The same is true for the frequency of running unit-tests. And PairProgramming is like a two-person continuous code-review in many ways.

Why is this? In order to truly EmbraceChange, you dont just face it head on, you run right to it (embracefully ;-) and start tackling it as soon as each little wisp wafts in through the crack of the door. You cant simply be reactive, you must be ProActive!

IMHO the most extreme thing in XP is the frequency with which these various forms of communication are proactively practiced, both with code, and people (developers and customers). The frequency is so high as to make it seem continuous where possible. So no matter how big the change you are embracing, you address it instantaneously and wrap-it-up quickly in small manageable chunks that feed right back into the stream of change, with minimal disturbance and maximal adaptivity and proactivity.

Hence XP embraces change continuously! That it doesn't hesitate to refactor (e.g. CollectiveCodeOwnership), or reformulate can seem like "courage" or "aggressiveness". And sound, sensible practices like formal reviews don't make sense in XP because the implicit assumption of discreteness no longer holds. Its just too large-grained to fit into the flow when you EmbraceChangeContinuously.

In this light the aforementioned four values of XP boil down to the simple pair of "Communication" and "Simplicity." In order to get the most effective communication we need to be concerned with the quantity of communication and the quality of communication. ContinuousCommunication address the issue of "quantity" by using ultra-high-frequency communication of very small and manageable chunks. ContinuousSimplicity addresses the issue of "quality", optimizing the signal-to-noise ratio through things like RefactorMercilessly and DoTheSimplestThingThatCouldPossiblyWork and TheSourceCodeIsTheDesign.

To me at least, these values are the essence of how XP successfully embraces change, via the proactively continuous application of both communication and simplicity in all aspects of the project: the code, the developers, the customers, and the management. The ExtremePrinciples of ExtremeFrequency and ExtremeProactivity are constantly and consistently applied to these ExtremeValues to effect ContinuousCommunication and ContinuousSimplicity throughout all of XP.

-- BradAppleton


EditText of this page (last edited November 12, 2005) or FindPage with title or text search