This quote from the linked article reminded me of a conversation we
recently had. I think some of your ideas are validated here regarding
co-evolution. eXterme Programming is a methodolgy for software creation
that I think is valid and increasingly popular. This article from
O'Reilly is an introduction.
A contrast of styles between XP and "traditional" programming
Most experienced programmers are familiar with the "large scale up
front" design approach. XP programming doesn't embrace this approach for
a couple reasons.
A large up-front design means that the whole programming team sits down
and plans out the entire program before writing code. That would work
if two things were true. First, the team would have to know exactly
which features were to be implemented. Second, the team would have to
be able to anticipate all issues that would come up when actually
There aren't a lot of domains where that's possible. (NASA comes to
mind.) Customers change their minds or explain things differently, or
someone comes up with a better way to code something, and the grand
design is different. If it changes more than a little bit, someone will
have to update it, and a little more time spent on the initial design
The same goes for coding things you don't yet need. If the project has
enough uncertainty that things could change, plan on them changing.
Don't spend time on features and designs that might be thrown away next
week or next month, and that no one will use for next month.
Instead, XP embraces the notion that you should spend your time on the
features that provide the most business value to the customer. If you
have good unit tests and a simple design, and if you've been working
with other programmers, then adding features when you need them isn't
nearly as expensive as you would think.
We've seen some of these principles applied to high-quality open source
projects. Freed from traditional constraints like market pressure and
ever-changing business demands, coders can explore various approaches,
picking the best available solution. With the short feedback loop
between developers and users, and a culture that encourages savvy users
to add features and fix bugs, a project can evolve in new directions
-- -- Grant Bowman <firstname.lastname@example.org>
This archive was generated by hypermail 2.0.0 : Tue Aug 21 2001 - 17:58:06 PDT