is an excellent book by Les Hatton. As usual I'm going to quote from a few pages:
A central and hard-earned engineering principle in older engineering
areas such as mechanical engineering and civil engineering is that
simplicity rules.
The way to improve seems to be to master one thing at a time by doing a lot
of it until quality naturally emerges.
Quality is not a flag in the company car park.
This book will argue forcibly that there is a property of software which
experienced programmers can identify with quality without knowing the function
of the software.
The more art is controlled, limited, worked over, the more it is free. [Igot Stravinksy]
Early versions of a number of Beethoven's pieces exist and give strong evidence
of being written by a mere mortal; indeed, some are extraordinarily naive. Greatness
emerged only after considerable refinement.
a profoundly important step in the maturity of a discipline is the enforcement of hard-learned previous experience and the recognition that complexity must be strictly controlled to that which necessary and no more.
A human programmer reads a programming language just as a compiler does. Therefore,
languages that are difficult to write compilers for are likely to be difficult to read
if those features that cause difficulty are used.
the content is more important than the style.
The author has always believed, however, that if something is statically detectable
and therefore easily removeable, but likely to fail only once in the lifetime of the
galaxy, it should be removed, because that occurrence might be next week and might kill
someone. If its presence is known and its implications understood, it may well be
negligent in the eyes of the law to leave it.
You can't test quality into software.