This book is a collection of 97 articles, written by various authors, about software engineering and architecture. The articles are short (no more than 2 pages) and easy to read. Each one is focused on one principle.
The book is not a definitive receipe on how to conduct a project and be sucessful. It’s rather a set of – more or less generic – advices to think about: did I had similar experience? Should I remember this advice next time I start a project? Is this advice relevant in my position? etc.
What is nice about the book is that it covers a wide spectrum of problems faced when building a piece of software. There are not only reflexions about technology, but also communication issues, risk management, managing people motivation, taste and opinions, the necessity of having a vision and a leader, etc. What matters utlimately is the delivery of a solution that addresses the real customer problems.
My top 10 favorites are:
“Perfect” is the Enemy of “Good Enough”
Great software is not built, it is grown
If there is only one solution, get a second opinion
Make sure the simple stuff is simple
Shortcuts now are paid back with interest later
Prefer principles, axioms and analogies to opinion and taste
Simplify essential complexity; diminish accidental complexity
Your system is legacy, design for it.
Simplicity before generality, use before reuse