It seems that in every field of human endeavor, there are things that are true, but for whatever reason are unspoken and ignored. The reasons for this are many, but a partial list includes: fear of failure, fear of losing face, time pressures, rigid rules and tradition. Software development is no different and Tom DeMarco is a speaker of the truth. In this collection of marvelous essays, he points out many of the well-known but neglected principles that generate problems in software projects.
The leading essay points out that software creation is hard and we demand a great deal from our software. So much of our societal infrastructure is controlled by software and most of it built in a relatively short time. Furthermore, there is no legacy of experience in building software that there is for building hard infrastructure items such bridges and roads. We are still conducting what is essentially on the job training.
Another simple, significant, yet overlooked point is that the sociology of a project is more important than the technology. The efficiency of a programmer during any individual day is often influenced more by the fight with a boyfriend or girlfriend than it is by having the latest tools. Software is built by the effective working of the human brains and the tools just make the output easier to capture.
Once again, DeMarco is at his best, namely when he is writing more about sociology and psychology than about the technical aspects of computing. This book should be mandatory reading for anyone in the process of building a development team.