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.