Good Design Is Hard

A good design is one that does not suck.

-- Anonymous

A good design is one that can be easily understood, easily modified, everything is said OnceAndOnlyOnce, and does exactly what is needed and nothing more.

-- GuillermoSchwarz

Good design is when there is nothing left that can be taken away.

And at the same time, the system does everything that is needed. See KeepItSimple. Compare this with PluggableArchitecture. -- GuillermoSchwarz

- Do we need to state that? If the system doesn't do everything that is needed, you obviously took away too much. -- AnonymousDonor


This reminds me of something said about writing, that you know you're done when there are no more words you can get rid of. Is this another example of WritingProgramsIsWriting?

In this respect, software design is like any creative endeavor. Very seldom do you sit down to work and just have inspiration strike, and when that does happen it's because you're drawing on experience. To create anything well, first you have to organize your thoughts, then you have to work it and rework it until it comes out a work of art.

There are things that can interfere with good design:

-- TimKing


There are two ways to do a design:

  1. So simple that there are obviously no deficiencies.

  2. So complex that there are no obvious deficiencies.

-- CarHoare

See TwoWaysToDesign. I read number 1 as follows: A good design is simple enough so that you can always see why you took a DesignDecision?. You can always trace back a DesignDecision? to a requirement, therefore if the requirement changes, you can always undo that DesignDecision? and the design is kept clean and simple (or LeanAndMean?). -- GuillermoSchwarz


See: GoodDesign, GreatDesign, DynamicClassification, BigReductionUpFront .


EditText of this page (last edited May 15, 2006) or FindPage with title or text search