The Web as filtered (and hopefully enriched ;-) by Adrian McEwen

Emergent Design Considered Harmful

At lunch today I used the term “just-in-time design”, but I meant the same as Emergent Design. The ensuing discussion quickly highlighted that, despite my initial assertion, I don’t actually favour just-in-time design. My preferred solution is a mixture - up-front design for the overall framework for the system, and just-in-time design for the internals of the components defined in the framework. I think defining the API to a module is a good first task for the implementation; it makes you think through how the module will work, sort out the error handling… all useful things to have considered before you start spewing out code.

The Folly of Emergent Design puts forward some good arguments for what’s wrong with the agile, lightweight, emergent design methodology. The redundant code argument is less of an issue in the embedded/mobile world, because when you have to worry about downloading your software over a GPRS network, onto a “disk” that’s only a couple of megabytes, there is value in refactoring just to save space. Then again, performance and size are more critical, and it’s better to consider that in an up-front design…

(Via Archipelago).

This page is part of Adrian McEwen's blog, McFilter. Explore more in the category pages or archives below.

Subscribe to updates with the RSS feed (what's an RSS feed?)