Agile Developers don’t do Design

James Carr is back blogging after a year’s absence and writes that we don’t use UML in XP.

No big surprise that Agile developers get about as close to Big Design Up Front as my teenage kids got the Eagles concert in Dublin this weekend (about 110 miles).  Hell, I worked for mil/aero companies for years and still wake up in a cold sweat brought on by 8 beers, a cheese sandwich and memories of justifying design changes to the Change Control Board even though the “design phase” was supposedly finished and signed off months ago.

So no BDUF, no problem. But let’s not throw out the baby with the bathwater here. It seems that the Agile developers have given up on package design as well as BDUF.  Following Agile principles, the higher-level “design” emerges from class-level design and programming. But if nobody is paying attention to this emergent design then it will inevitably become a ghastly tangled mess that has no chance of supporting design-level goals like Bob Martin’s Release/Reuse Equivalency Principle (REP).  This means that development productivity is likely nose-dive on bigger projects.

Could this be the reason why Agile isn’t adopted so much for very large projects?


  1. Lal

    Having been involved with Agile development and OSS projects recently (having come from large enterpise systems) I agree there is a lot of “stuff” getting chucked out with the bath water. XP/Agile has some benefits but don’t drink ALL the cool-aid!

  2. Chris

    Fully with you there Lal. I came from mil/aero which could be described as FBDUF ;-). As I say above, the main thing I have to add is regular monitoring of the emergent design. From looking at package dependency graphs of almost any Opensource project, I can say for sure this is not a common practice.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.