Industrial XP:  CommunityPage? Ties To Alexandrian Ideas

Ties To Alexandrian Ideas

Revision r1.2 - 26 Apr 2004 - 11:59 GMT - DaveHoover

I am amused when people say that XP conflicts with the QWAN (Christopher Alexander's "Quality Without A Name"), or that patterns are incompatible with XP. As far as I am concerned, patterns and XP are "the first try" and "the second try" of Kent Beck to put Christopher Alexander's ideas into practice. Both of them are derivatives of the Alexanderian philosophy. XP is more derived from Christopher Alexander's work than "Design Patterns", because Kent was more strongly influenced by Alexander than any of the gang of four.

When I read "A Timeless Way of Building" back in 87 or 88, I was most attracted by its emphasis on piecemeal growth. Piecemeal growth is the way nature works, it is how you get the QWAN, it is the ideal. Software engineering tends to denigrate piecemeal growth. I'm a fan of refactoring, so I resonated with it right away. XP emphasizes this more than the pattern literature. A lot of people read "Design Patterns" and think that they are supposed to use the patterns in up-front design. We didn't say that, but they are reading their assumptions into it. The GOF are fans of piecemeal growth, but we didn't make that point in our book, and few pattern writers do. When it comes to piecemeal growth, XP is more Alexanderian than most patterns literature.

Kent thought that "Design Patterns" did not emphasize emergent properties enough, that they weren't "generative" enough. XP emphasizes this much more. XP is propagated by a dozen patterns (there are actually a lot more) that do not mention things like "ease of change" or "reliability" but that are supposed to generate these properties if you follow the patterns. XP proponents claim that XP projects are more predictable and more likely to deliver software on time, even though XP downplays long-term schedules.

On Kent's second try, he very carefully avoided mentioning Alexander. Perhaps he thought that Alexander just confused people, and that it was better to avoid ideas like the QWAN. So, he invented a whole bunch of new vocabulary to convey these ideas, things like "code smell" and "do the simplest thing that could possibly work". It reminds me of what Gregor Kixalis has done repackaging reflection and calling it aspect-oriented programming. If your ideas aren't selling in one package, repackage them and see if you can reach a different market with them. It is a good strategy.

So, as far as I am concerned, Kent started two movements that are based on Alexaderian philosophy, and that fact that we talk about Alexander more than the XP crowd doesn't mean that we are closer to Alexander than they are.

-RalphJohnson

Ward Cunningham's Episodes pattern language (http://c2.com/ppr/episodes.html) was XP's predecessor. XP is most definitely a pattern language, as is IXP. -- JoshuaKerievsky - 23 Apr 2004


TWiki home


Useful Links

· Edit this page
· IXP Community Page
· Print preview
· Recent Changes
· Advanced Options
· Register
· Change Notification