I just finished up Max Kanat-Alexander’s Code Simplicity: The Fundamentals of Software. I’m having a difficult time reviewing this book for a couple of reasons. I liked the concept, the contextual stories (particularly with respect to Bugzilla), and some of the ideas. Something that struck me as very interesting is the idea that development effort really boils down to the sum of all future effort over the sum of all future maintenance expenditure, and that these future measures generally overwhelm present value and cost. This was contrary to my prior belief, but after thinking about it some, I can see the argument. I don’t think it’s quite as clear-cut as Kanat-Alexander makes it out to be, but there is definitely value.
The focus of the book is on simplifying design, and much of the book is an argument for why one should simplify design. This really feels like it should be the first section of a larger book on design. I recommend reading the book, but it really isn’t that much longer than, say, a series of blog posts. This, combined with Kanat-Alexander’s very informal and friendly writing style, made the book almost saccharine in nature: it’s very sweet but not as filling as you’d want.