Friday, July 20, 2007

Short Take: Fractal Design

For years (I think, starting somewhere in 2000), I've been fighting my delusions of grandeur when explaining the concept of fractal design to people - I thought that obviously somebody must've thought of something this simple way before I did, and, hence, it is a common concept that I heard of somewhere and subliminally decided that I coined the term.

Apparently, not quite. Despite the fact that Google search for fractal design and fractal architecture returns more than enough matches, my patience was exhausted well before I could find anything similar to what I had in mind.

So let me put the stake in the ground, then, and introduce a definition:

Fractal Design: design pattern characterized by approximately same level of complexity at any level of abstraction.

It is a counterpoint to God Object (a.k.a. Blob), Interface Bloat, Spaghetti Code, abused Ravioli Code , Big Ball Of Mud and possibly other Antipatterns.

Starts making sense in context of Complexity Management, which, in turn, is not very well defined in the software engineering domain (this nice essay is just about the only article connecting the two), though, apparently, is widely accepted and practiced in business.

No comments:

Post a Comment