XP, Design

Reading through Ron Jeffries' book Extreme Programming Adventures in C#, I was struck by the lack of design work.  This guy was setting out to create an XML Editor, and in my opinion, he went completely down the wrong path, and as a result of a whole book's worth of work on the XML editor, he's created an XML Editor that's built on an edit control, which really offers very little flexibility.  In my opinion it's a dead end.

Spending a few days on long term design would have probably showed him that this was a dead end, but that's not how Extreme Programming works.  You start developing and you assume the path you're on is a good one until you have evidence that shows otherwise.

The thing about software development trends is that when they catch on, having someone like me say "this is silly" doesn't really change anything.  But having someone widely read and respected say it can get people's attention. 

So it was nice to see Joel point out the silliness:

"As I worked through the screens that would be needed to allow either party to initiate the process, I realized that Aardvark would be just as useful, and radically simpler, if the helper was required to start the whole process. Making this change in the spec took an hour or two. If we had made this change in code, it would have added weeks to the schedule. I can't tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I'm proud to use it, no matter what the XP fanatics claim. They're just wrong on this point and I can't be any clearer than that."