The Two Ways of Software Design (guest post by Roy van de Water)

There are two ways of constructing a software design. One is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
 — C. A. R. Hoare

Originally published at