Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

Thursday, August 16, 2007

Emerging design

If development is the process of introducing dependencies, then design is the art of managing those dependencies.

So, design will be effective when applied after development has begun. That is, design emerges from the swamp code.

This type of emergent design is ideal in an agile environment. With techniques such as refactoring, unit testing, and pair programming at our disposal, all we need do is periodically look at our work from a different perspective and have the courage to acknowledge its shortcomings and we will be in a great position from which to emerge a better design.

Here are some tools that I've found helpful for emerging design: