XP article contrast

From: Grant Bowman (grantbow@svpal.org)
Date: Sat May 12 2001 - 12:52:28 PDT


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
writing code.

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
was wasted.

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
very quickly.

-- Grant Bowman                                   <grantbow@svpal.org>

This archive was generated by hypermail 2.0.0 : Tue Aug 21 2001 - 17:58:06 PDT