Principles of Good Design

Is beauty objectively true? Are there principles you can use to guide you to it in your work? Can designers from both the sciences and the arts look at each others work and find beauty? These are important questions for designers of all types.

For those of us who design things … we need to be able to recognize it. We need good taste to make good things. Instead of treating beauty as an airy abstraction, to be either blathered about or avoided depending on how one feels about airy abstractions, let’s try considering it as a practical question: how do you make good stuff?

That’s programmer Paul Graham from his article Taste for Makers. Here’s my edited version of his principles for good design. What you need to make good stuff. I’m posting them here for my own benefit, as a note-taking exercise, and maybe yours if you don’t want to read the original. But you should.

  • Good design is simple. For architects and designers it means that beauty should depend on a few carefully chosen structural elements rather than a profusion of superficial ornament. When you’re forced to be simple, you’re forced to face the real problem. When you can’t deliver ornament, you have to deliver substance.
  • Good design is timeless. If something is ugly, it can’t be the best solution. There must be a better one, and eventually someone will discover it. If you can imagine someone surpassing you, you should do it yourself.
  • Good design solves the right problem. The typical stove has four burners arranged in a square, and a dial to control each. How do you arrange the dials? The simplest answer is to put them in a row. But this is a simple answer to the wrong question. The dials are for humans to use, and if you put them in a row, the unlucky human will have to stop and think each time about which dial matches which burner. Better to arrange the dials in a square like the burners.
  • Good design is suggestive. In architecture and design, this principle means that a building or object should let you use it how you want: a good building, for example, will serve as a backdrop for whatever life people want to lead in it, instead of making them live as if they were executing a program written by the architect.
  • Good design is often slightly funny. This one may not always be true. Good design may not have to be funny, but it’s hard to imagine something that could be called humorless also being good design.
  • Good design is hard. In art, the highest place has traditionally been given to paintings of people. There is something to this. If you draw a tree and you change the angle of a branch five degrees, no one will know. When you change the angle of someone’s eye five degrees, people notice.
  • Good design looks easy. Like great athletes, great designers make it look easy. Mostly this is an illusion. The easy, conversational tone of good writing comes only on the eighth rewrite.
  • Good design uses symmetry. I think symmetry may just be one way to achieve simplicity, but it’s important enough to be mentioned on its own. Nature uses it a lot, which is a good sign.
  • Good design resembles nature. It’s not so much that resembling nature is intrinsically good as that nature has had a long time to work on the problem. It’s a good sign when your answer resembles nature’s.
  • Good design is redesign. It’s rare to get things right the first time. Experts expect to throw away some early work. They plan for plans to change. You should cultivate dissatisfaction.
  • Good design can copy. I think the greatest masters go on to achieve a kind of selflessness. They just want to get the right answer, and if part of the right answer has already been discovered by someone else, that’s no reason not to use it.
  • Good design is often strange. At an art school where I once studied, the students wanted most of all to develop a personal style. But if you just try to make good things, you’ll inevitably do it in a distinctive way, just as each person walks in a distinctive way. Michelangelo was not trying to paint like Michelangelo. He was just trying to paint well; he couldn’t help painting like Michelangelo.
  • Good design happens in chunks. At any given time there are a few hot topics and a few groups doing great work on them, and it’s nearly impossible to do good work yourself if you’re too far removed from one of these centers. You can push or pull these trends to some extent, but you can’t break away from them.
  • Good design is often daring. Today’s experimental error is tomorrow’s new theory. If you want to discover great new things, then instead of turning a blind eye to the places where conventional wisdom and truth don’t quite meet, you should pay particular attention to them.

The biggest takeaway? “You should cultivate dissatisfaction.” There’s no answer to the sad problem of the designer who struggles to finish a project before he hates it. In fact, it’s a blessing. If you’re not dissatisfied with your work in some way you’re not progressing. Graham closes his article with similar words. “The recipe for great work is: very exacting taste, plus the ability to gratify it.” It’s true.


StoryBots Astronomy

I’m not quite sure what the StoryBots are but my almost four-year-old daughter loves them. Their Astronomy videos? I love them. My whole family loves them. Catchy hip hop songs with cute animation. If you have kids or have no shame about enjoying videos made for kids check them out. I’ve ordered them by relationship to the sun and catchiness. The moon hook (“It’s my time to shine”) has been in my head all week. Enjoy.

Bonus: The StoryBots Baboon video is hilarious.



Brevity (the soul of wit) is my favourite principle for good writing. It may seem impossible to, say, arbitrarily cut any one text in half but the challenge of attempting it forces you to consider the importance of every phrase, word, and punctuation mark therein. Do it.


Build Things You Want To Use For Yourself

Languages, food, package tours, sitcoms, or (for my followers and myself) plugins and themes. Build things you want to use for yourself.

In the original Java white paper, Gosling explicitly says Java was designed not to be too difficult for programmers used to C. It was designed to be another C++: C plus a few ideas taken from more advanced languages. Like the creators of sitcoms or junk food or package tours, Java’s designers were consciously designing a product for people not as smart as them. Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++. The good languages have been those that were designed for their own creators: C, Perl, Smalltalk, Lisp.

From Java’s Cover by Paul Graham.


The Cost of Mistakes

I started reading through Paul Graham’s archives today. (It’s on the Automattic recommended reading list — yes we have a reading list, how cool is that?) I’m spending about 15 minutes every morning reading through it to start my day this year. Expect more random programming quotes from the past 20 years of programming and web development. Like this one!

This is just what the new model of programming does assume. Instead of hoping that people won’t make mistakes, it tries to make the cost of mistakes very low. The cost of a mistake is the time required to correct it. With powerful languages and good programming environments, this cost can be greatly reduced. Programming style can then depend less on planning and more on exploration.

That’s from the first chapter of ANSI Common Lisp by Paul Graham. Yes, really. Anyway, I think “the cost of a mistake is the time required to correct it” is a great aphorism but I think it’s corollary about planning and exploration is what really sticks for me. The idea that a project can depend less on planning and more on exploration when the cost of mistakes is reduced is really powerful. It’s something that I’ve slowly had to learn as a web worker. It didn’t feel natural to me as someone coming from the expensive “real” world of physical, printed design. The cost of mistakes is very high there. On the web? Not really. And you can take advantage of that in “exploration”.