Monday, February 14, 2005

There is No CODE that is more flexible than NO Code!

Hrista Deshev's Journey into Softlandia blog referred to a posting I made to the xpbookdiscussiongroup in my response to Kent Beck on Incremental Design. I wrote that the biggest thing [about software design] that I learned from [my undergraduate experience] was the importance of what I believe Christopher Alexander calls "negative space", only for software architecture. I glibly summarized it as
There is no CODE that is more flexible than NO Code!

The "secret" to good software design wasn't in knowing what to put into the code; it was in knowing what to leave OUT!
It was in recognizing where the hard-spots and soft-spots were, and knowing where to leave space/room rather than trying to cram in more design.

Those yearning for more background are referred to the aforementioned message in the xpbookdiscussiongroup

This, and my own natural inclination to remove redundancy in my code, and my aversion for tedium (and hence passion for automation and tooling/scripting), formed the basis of my design intuition when I first entered the software development workforce in the latter half of the "eighties" (1986-1988). It served me well, as I learned about things like object-orientation, and later (in the mid-nineties) design patterns, refactoring, and extreme programming.

[Update: 3/29/2017] I just came across a thread on the OTUG mailing list in August of 1999 on "Anticipatory Design" where I wrote the phrase that is the title of this 2005 blogpost, I know its not the first time I said the phrase, but it may be one of the first public places that I wrote it. 

1 comment:

Anonymous said...

Agreed! I have see too many projects (unfortunately many that I have been responsible for) that need this valuable insight.