Incremental Design and Architecture (also known as evolutionary design, or continuous design) is this week's excerpt from The Art of Agile Development. This section of the book covers one of my favorite concepts in Extreme Programming. My very first conference presentation, at XP Universe in 2001, discussed my initial experiences with the topic. My first major published article, in 2004, discussed what I'd learned from being on the cutting edge for several years.
I don't get as many opportunities to practice cutting-edge evolutionary design as I used to. Working at that level requires months of dedicated effort on a clean codebase, and precious few companies keep their code clean enough to be useful. I'm fortunate that I've been able to be part of several green-field development projects involving teams that cared about that level of excellence. Evolutionary design remains one of my favorite topics and I treasure the times when I can push its boundaries again. I hope you enjoy our overview of the subject.
In two weeks, I'll post an excerpt from the Collaborating chapter. Which practice would be most useful to have online next?
Here are the results of the poll for this week's excerpt: