"There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies and the other is to make it so complicated that there are no obvious deficiencies."

Professor C.A.R (Tony) Hoare, the inventor of Quicksort and CSP among many other things

"Make it as simple as possible, but not simpler"

Albert Einstein

"Entia non sunt multiplicanda praeter necessitatem"

William of Occam (the principle known as Occam's Razor)

"A designer knows that he has arrived at perfection not when there is no longer anything to add, but when there is no longer anything to take away."

Antoine de Saint-Exupéry

"Our life is frittered away by detail - Simplify, simplify".

Henry David Thoreau

"I have made this letter longer than usual, because I lack the time to make it short."

Blaise Pascal

Simpleware Principles

Overly-complex software so depresses me that I've been experimenting to see just how simple you can make a user-interface that still works - I call the results "simple-ware". My first attempts are a couple of little utilities, a VAT calculator and a units converter, for Windows PCs. which have no menus, no commands and are completely modeless: for example you can enter any one of the figures Net, VAT or Gross and the other two will be immediately recalculated.

Download the file (136 Kbytes) and (126 Kbytes) below.

Here are a few basic principles for simple-ware:

  • Menus are poison.
  • Buttons are better (but no more than six of them).
  • There shall be no hidden 'state': all parameter values are to be immediately visible.
  • If that isn't possible then they should be only one click away, under an obvious label.
  • Drag-and-drop is good, but few programs have really exploited it well so far.
  • Things that are not active should go grey: live things go black again.

I'm sure I'll discover several more as I go along (and equally sure that some may be too severe and may have to be abandoned). If you feel like designing your own simple-ware utility I'd like to hear about it.