Wednesday, September 30, 2009

Is emergent design possible? (I think it is!)

Just the other day I had a discussion with a really experienced lead developer about the feasibility of the no-big-design-up-front-approach and the necessary circumstances to make emergent design work.
Along comes these series of articles from Abby Fichtner that I stumbled upon last night.
And although there's more to emergent design than Bob Martins SOLID principles I think these articles make an excellent starting point for a deeper discussion of the subject.


1 comment:

abby said...

Wow, thanks for the links!

Those posts were based heavily on a talk Bob Martin did at SD East a couple years ago, where he really emphasized the fact that the goal isn't to design everything out in perfect, 100% accordance with the SOLID Principles, but rather that we use these principles to help us emerge the code in an intelligent way.

So, for example, if we created an interface for every-class-we-ever-wrote, well that's a god-awful lot of interfaces. And I know we've all worked in systems that went a little pattern crazy - creating so many classes "just in case" that in trying to be more maintainable they actually can end up more confusing to work on.

So let's instead just create interfaces as we find we need multiple implementations of a concept.

It just really stuck with me as a great paradigm for emergent design.

Really looking forward to hearing other's ideas around this concept!