25 October 2006

New addition to Simplicity Cycle

I recently came across the phrase "premature optimization" in an article about design and programming, and I realized the concept is reflected in my Simplicity Cycle, albeit unconsciously and not explicitly.

Those who aren't familiar with it might want to check out The Simplicity Cycle Manifesto at ChangeThis.com. Or just read this post and maybe you'll pick it up as we go along. Or maybe the diagram above will suffice.

Here's what I've learned: The journey along the Complexity Slope, from the region of the simplistic to the region of the complex, involves increases in both complexity and goodness (now don't you wish you'd read the manifesto?). At some point in your design (or learning, creation, etc), you reach a critical mass of complexity, where any additional increase in complexity lead to a decrease in goodness. At that point, the optimal path forward along the goodness axis requires decreases in complexity - the Simplification Slope.

But what if you peak too soon? What if you begin doing synthesis too soon, before you've generated a sufficient foundation of complexity? Premature optimization... and less goodness than if you'd have achieved if you'd increased the complexity sufficiently.

Of course, those who were already familiar with the Simplicity Cycle's concepts probably understood this as soon as they saw the diagram. The rest of you might need to "increase the complexity of your understanding" first, by reading the Manifesto, and then you'll be able to put it all together into something simple and elegant.

No comments: