Henry Petroski is an author of "popular engineering" books, the cousin to "popular science", which attempt to explain the process of engineering design to a non-specialist audience.
This book documents how successful engineering is a process of predicting and preventing failure. Several chapters offer a variety of viewpoints on the philosophy of design: engineering as hypothesis (this building will stand up) which is tested analytically or empirically; design as revision (if we change this bit it will stand up); success as foreseeing failure etc.
There are several good angles here, particularly where Petroski likens engineering design to the way in which children learn. For non-engineers, there is also useful material on factors of safety, failure by cracking and other basics.
Petroski's use of language is excellent, but as an engineer, I do find a lot of the book disappointing. Non-engineers might come away thinking they know why Tacoma Narrows collapsed, or what fatigue cracking is, but the technical reasons are at best alluded to, never properly explained. Petroski's paper-clip example for fatigue cracking is particularly poor, as it mixes in two generally unrelated issues (brittle failure and plastic strain hardening; although ultimate failure is indeed due to fatigue cracking). For technical matters, "Why Buildings Fall Down" by Matthys Levy and Mario Salvadori is far superior, and much better illustrated with simple and easy-to-follow diagrams.
Where Petroski succeeds is in the human processes of design engineering, but even here he is somewhat weak. He's good on the philosophy but not the reality - you couldn't read this and get any grasp on how a design engineer actually spends their day, for example.
Worth reading, but let down by its fear of the technicalities.