Code Simplicity

Posts from September, 2008

Design From The Start

Posted by Max Kanat-Alexander
On August 15th, 2008 at 10:08

Permalink | Trackback | Links In

Category: Essays

I don’t know if this has become clear to everybody yet, but you really need to design from the start. You need to be working on simplicity and the other Laws of Software Design from the very beginning of your project.

My policy on projects that I control is that we never add a feature unless the design can support it simply. This drives some people crazy, notably people who have no concept of the future. They start to foam at the mouth and say things like, “We can’t wait! This feature is so important!” or “Just put it in now and we’ll just clean it up later!” They don’t realize that this is their normal attitude. They’re going to say the same thing about the next feature. If you give in to them, then all of your code will be poorly designed and much too complex. It’ll be Frankenstein’s monster, jammed together out of broken parts. And just like the friendly green giant, it’ll be big, ugly, unstable, and harmful to your health. (Read More…)

Sane Software Design

Posted by Max Kanat-Alexander
On August 11th, 2008 at 11:08

Permalink | Trackback | Links In

Category: Laws of Software

I have come up with an analogy that should make the basic principles of software design understandable to everybody. The great thing about this analogy is that it covers basically everything there is to know about software design. (Read More…)