"There are two ways of constructing a software design:... "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 way is to make it so complicated that there are no obvious
deficiencies."
-- C. A. R. Hoare