Ties To Alexandrian Ideas
Revision r1.2 - 26 Apr 2004 - 11:59 GMT - DaveHooverI 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 |
|
|