I recently created a Top 100 Best Software Engineering Books, Ever. I created that list…
My previous post, the Top 100 Best Software Engineering Books Ever, cost me so much energy that I was too tired to give you my thoughts about the entries in the list. However, now that the Top 100 list has turned out to be my most popular post ever (which is nice), and after receiving numerous emails from people requesting the full version (which is also nice), I feel completely re-energized! So, let's walk down the list and see what entries are worth pointing out…
First of all, it is obvious that Steve McConnell is the biggest hero among software engineers. (Well, at least among the reading part of the software engineering population…) Steve has no less than four entries on the list: Rapid Development (#3), Software Estimation (#14), Software Project Survival Guide (#47), and of course the Best Software Engineering Book Ever… Code Complete (#1). Congratulations to Steve for this stellar achievement!
There's only one other author with four entries on the Top 100 list. It's Martin Fowler, with Refactoring (#10), Patterns of Enterprise Application Architecture (#17), UML Distilled (#30) and Analysis Patterns (#83). And next in line is Alistair Cockburn, with three titles: Writing Effective Use Cases (#12), Agile Software Development (#22) and Crystal Clear (#46). It seems you cannot go wrong reading just about any of the books these guys are delivering!
After creating the top 100 list, one thing that immediately grabbed my attention was the #2 position for Head First Design Patterns, by Elisabeth Freeman, etc. The book ended two notches higher than the original (and more famous) Design Patterns (#4) by the Gang of Four (Erick Gamma, etc.) Several people had already informed me that Freeman's book is actually more readable than the classic one by the GoF. And now the Top 100 list seems to indicate that this is indeed the general public opinion. Freeman's book has a higher average rating on Amazon, and it was a Jolt Winner on top of that.
The best agile software development book is Agile Software Development: Principles, Patterns and Practices (#6), by Robert C. Martin. I've read lots of agile books myself, but I must admit that for some reason this book has never reached my own book shelf. It's an oversight I will have to rectify very soon! And speaking of agile… There are no less than 20 books on agile software development on the Top 100 list. It's obvious that no other topic has been so hot as the "agile" meme in the last decennium.
I would like to mention that I had a tough time deciding whether or not Mastering Regular Expressions (#18), by Jeffrey Friedl, actually belonged on the Top 100 list. I told you before that the list is about software engineering topics, and not about specific technologies. However, the book simply kept popping up in numerous searches and references. And I considered that regular expressions are actually not a technology but an (interpreted or compiled) technique or notation, just like UML, and useful for any software engineer, regardless of the type of application. So I relented, and Jeffrey got his #18 slot on the list.
For books with different editions I simply added the reviews and ratings for each edition, and used the last edition as the only Top 100 entry. Scott Berkun, the author of Making Things Happen (#35) was lucky that I knew that the previous edition of his book had a different name: The Art of Project Management. He wouldn't have ended so high if I had not been able to catch that essential piece of information. (I know Scott occasionally reads my blog, so I assume he will thank me very soon…)
One book that deserves a special treatment is Dreaming in Code (#52), by Scott Rosenberg. It is the only book released in 2008 (first edition) that was able to make it on the list, having already scored Amazon 59 reviews.
And another newcomer that's worth point out is Manage It! (#67), by Johanna Rothman. Johanna's relatively new book still had only seven reviews on Amazon (at the time of calculation), but she scored a perfect 5.0 rating, and she added a Jolt award on top of that! Her book is the highest on the list with such a small crowd of enthusiastic supporters, and an almost perfect score for quality. (I also know Johanna sometimes reads my blog, so I assume she has already jumped for joy…)
Speaking of Jolt awards, the top 7 books on the list all have received such an award. The highest entry on the list that did not receive a Jolt award is Peopleware (#8), by Tom DeMarco and Timothy Lister. The book is one of the highest rated books ever, and I'm sure that the Jolt jury regrets not having awarded Tom and Tim for their little (but visionary) masterpiece.
At the other side of the scale we find The Unified Modeling Language User Guide (#56), by Grady Booch. Of all the books on the Top 100 list, this one has the lowest average Amazon rating (3.30). But it is compensated by a large number of reviews (81) and a huge number of Google hits. It's a nice example of a book having popularity winning over quality.
Last of all, I think there's no better way of ending this post than including a reference to Hacker's Delight (#100), by Henry S. Warren. It seems like a nice book to close the list at the bottom. I had never heard of the book myself, but seeing that it has a perfect Amazon rating of 5.0 I'm sure that it's worth checking out.
If you want to do some more analysis and investigation yourself, then don't hesitate to email me and request the full Top 100 list, in MS Word format, including all statistics and a description of the calculations.
Subscribe to this blog with a reader or by email!
Latest, greatest and favoritest posts:
Top 100 Best Software Engineering Books, Ever
Rubber Chicken Management
Five Agile Competence Levels