Recommended with reservations.
Dave Thomas is the co-author of The Pragmatic Programmer, one of the authors of the Agile Manifesto for Software Development, and author of numerous other books on software development. The subject of ‘simplicity’ appealed to me, and I was curious to hear what Thomas had to say about it.
The book is Thomas’ personal view on simplifying not only code but also software development projects or even your life. ‘Simplicity’ is an appealing title, but the term does not quite fit the bill. The book is actually about (improving) quality; the quality of code and the quality of software development processes. Simplifying your code turns out to be a relatively modest topic in the book. What is meant by ‘simplifying’ is not always clear either; what is simple for one person is far from simple for another.
The book contains a number of practices, each of which contains a number of ideas that are then elaborated upon. A number of topics that Thomas describes in Simplicity, such as embracing change, decoupling, and the use of state machines, have already and more extensive been described in The Pragmatic Programmer, but it is certainly not a copy of that book; it contains enough new insights and ideas. Some parts, such as Practice 19 (Spin a Story), are a bit long-winded and rather obvious.
Simplicity is a very personal book. Thomas admits, for example, that he was not always empathetic and that he had to change his attitude towards other people. You can still see the old Thomas in the chapter on meetings, in which he admits that he dislikes meetings and complains about the time wasted on social talk, for example.
For me, it is an inspiring book that holds up a mirror to you. It gave me ideas and made me think. As Thomas himself says, not all ideas are applicable to everyone and all organisations, but everyone will find something to their liking in this book. My reservation however stems from the fact the book title doesn’t completely fit the bill and the fact that a lot of material already has been discussed in The Pragmatic Programmer.










