February 14, 2005

Less Software

The concept of creating "less software" is much on my mind lately. I mentioned this briefly in a post a few weeks ago, but the concept was really hammered home during the Building of Basecamp workshop. (I'm going to write up a longer response to that workshop at some point, I hope.) The concept popped back onto my radar screen this morning with Brad Appleton's post about the notion that there There is No CODE that is more flexible than NO Code!. (This is just a slightly more verbose way of the 37Signals' mantra.) Appleton elaborates in an email:

And the biggest thing I learned from that was the importance of what I imagine 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 wasnt knowing what to put in; 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.

I just made the decision to toss out some features in a little side project I'm working on. Feels good.