- number of Amazon reviews;
- average Amazon rating;
- number of Google hits;
- Jolt awards.
Please refer to the second part of this article to find out how the calculations were performed.
The Top 100 List
# | Author(s) / Title | Year | ISBN13 | Jolt | sum | avg |
1 | Steve McConnell Code Complete: A Practical Handbook of Software Construction (2nd Edition) | 2004 | 978-0735619678 | ** | 243 | 4.72 |
2 | Elisabeth Freeman, etc. Head First Design Patterns | 2004 | 978-0596007126 | ** | 237 | 4.63 |
3 | Steve McConnell Rapid Development | 2003 | 978-0072850604 | ** | 112 | 4.74 |
4 | Erich Gamma Design Patterns: Elements of Reusable Object-Oriented Software | 1994 | 978-0201633610 | * | 244 | 4.55 |
5 | Bruce Schneier Applied Cryptography: Protocols, Algorithms, and Source Code (2nd Edition) | 1995 | 978-0471128458 | * | 99 | 4.61 |
6 | Robert C. Martin Agile Software Development: Principles, Patterns and Practices | 2002 | 978-0135974445 | ** | 31 | 4.77 |
7 | Joel Spolsky Joel on Software | 2004 | 978-1590593899 | * | 48 | 4.71 |
8 | Tom DeMarco, Timothy Lister Peopleware: Productive Projects and Teams (2nd Edition) | 1999 | 978-0932633439 | 76 | 4.79 | |
9 | Frederick P. Brooks The Mythical Man-Month, Anniversary Edition (2nd Edition) | 1995 | 978-0201835953 | 124 | 4.54 | |
10 | Martin Fowler Refactoring: Improving the Design of Existing Code | 1999 | 978-0201485677 | 138 | 4.54 | |
11 | Mike Cohn Agile Estimating and Planning | 2005 | 978-0131479418 | 43 | 4.74 | |
12 | Alistair Cockburn Writing Effective Use Cases | 2000 | 978-0201702255 | * | 45 | 4.62 |
13 | Bertrand Meyer Object-Oriented Software Construction (2nd Edition) | 2000 | 978-0136291558 | ** | 43 | 4.47 |
14 | Steve McConnell Software Estimation: Demystifying the Black Art | 2006 | 978-0735605350 | * | 31 | 4.74 |
15 | Mike Cohn User Stories Applied: For Agile Software Development | 2004 | 978-0321205681 | 37 | 4.76 | |
16 | Donald E. Knuth The Art of Computer Programming, Volumes 1-3 Boxed Set (2nd Edition) | 1998 | 978-0201485417 | 109 | 4.39 | |
17 | Martin Fowler Patterns of Enterprise Application Architecture | 2002 | 978-0321127426 | * | 54 | 4.46 |
18 | Jeffrey Friedl Mastering Regular Expressions | 2006 | 978-0596528126 | 122 | 4.48 | |
19 | Andrew Hunt, David Thomas The Pragmatic Programmer: From Journeyman to Master | 1999 | 978-0201616224 | 127 | 4.42 | |
20 | Karl E. Wiegers Software Requirements (2nd Edition) | 2003 | 978-0735618794 | * | 44 | 4.48 |
21 | Craig Larman Applying UML and Patterns (3rd Edition) | 2004 | 978-0131489066 | 178 | 4.37 | |
22 | Alistair Cockburn Agile Software Development: The Cooperative Game (2nd Edition) | 2006 | 978-0321482754 | ** | 28 | 4.46 |
23 | Gary McGraw Software Security: Building Security In | 2006 | 978-0321356703 | 19 | 4.95 | |
24 | Gregor Hohpe, Bobby Woolf Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions | 2003 | 978-0321200686 | 31 | 4.74 | |
25 | Tom DeMarco The Deadline: A Novel About Project Management | 1997 | 978-0932633392 | * | 52 | 4.42 |
26 | Craig Larman Agile and Iterative Development: A Manager's Guide | 2003 | 978-0131111554 | 46 | 4.52 | |
27 | Eric A. Marks, Michael Bell Service-Oriented Architecture: A Planning and Implementation Guide for Business and Technology | 2006 | 978-0471768944 | 33 | 4.45 | |
28 | Thomas H. Cormen, etc. Introduction to Algorithms, Second Edition | 2001 | 978-0070131514 | 167 | 4.08 | |
29 | Thomas Erl Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services | 2004 | 978-0131428980 | 32 | 4.59 | |
30 | Martin Fowler UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) | 2003 | 978-0321193681 | * | 139 | 3.95 |
31 | Kent Beck Extreme Programming Explained: Embrace Change (2nd Edition) | 2004 | 978-0321278654 | * | 126 | 3.98 |
32 | Alan Shalloway, James Trott Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) | 2004 | 978-0321247148 | 109 | 4.33 | |
33 | Grady Booch, etc. Object-Oriented Analysis and Design with Applications (3rd Edition) | 2007 | 978-0201895513 | ** | 37 | 3.95 |
34 | Jim Highsmith Agile Project Management: Creating Innovative Products | 2004 | 978-0321219770 | 20 | 4.80 | |
35 | Scott Berkun Making Things Happen: Mastering Project Management | 2008 | 978-0596517717 | 55 | 4.53 | |
36 | Jon Bentley Programming Pearls (2nd Edition) | 1999 | 978-0201657883 | 28 | 4.50 | |
37 | Paul Duvall, etc. Continuous Integration: Improving Software Quality and Reducing Risk | 2007 | 978-0321336385 | ** | 13 | 4.85 |
38 | Andrew Stellman, Jennifer Greene Applied Software Project Management | 2005 | 978-0596009489 | 15 | 5.00 | |
39 | Clemens Szyperski Component Software: Beyond Object-Oriented Programming | 1997 | 978-0201178883 | ** | 13 | 4.69 |
40 | Arthur J. Riel Object-Oriented Design Heuristics | 1996 | 978-0201633856 | 27 | 4.78 | |
41 | Thomas Erl SOA Principles of Service Design | 2007 | 978-0132344821 | 24 | 4.58 | |
42 | Mary Poppendieck, Tom Poppendieck Lean Software Development: An Agile Toolkit | 2003 | 978-0321150783 | * | 35 | 4.57 |
43 | Ken Schwaber Agile Project Management with Scrum | 2004 | 978-0735619937 | 30 | 4.47 | |
44 | Ken Schwaber, Mike Beedle Agile Software Development with Scrum | 2001 | 978-0130676344 | 35 | 4.51 | |
45 | Joshua Kerievsky Refactoring to Patterns | 2004 | 978-0321213358 | * | 42 | 4.10 |
46 | Alistair Cockburn Crystal Clear: A Human-Powered Methodology for Small Teams | 2004 | 978-0201699470 | 12 | 4.75 | |
47 | Steve McConnell Software Project Survival Guide | 1997 | 978-1572316218 | 63 | 4.33 | |
48 | Tom DeMarco, Timothy Lister Waltzing With Bears: Managing Risk on Software Projects | 2003 | 978-0932633606 | ** | 23 | 4.52 |
49 | Venkat Subramaniam, Andy Hunt Practices of an Agile Developer: Working in the Real World | 2005 | 978-0974514086 | * | 26 | 4.58 |
50 | Kathy Schwalbe Information Technology Project Management | 2007 | 978-1423901457 | 27 | 4.63 | |
51 | Randall Hyde Write Great Code: Volume 1: Understanding the Machine | 2004 | 978-1593270032 | 17 | 4.82 | |
52 | Scott Rosenberg Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software | 2007 | 978-1400082476 | 59 | 3.78 | |
53 | Cem Kaner, etc. Lessons Learned in Software Testing | 2001 | 978-0471081128 | 35 | 4.54 | |
54 | Andy Oram, Greg Wilson Beautiful Code: Leading Programmers Explain How They Think | 2007 | 978-0596510046 | ** | 27 | 3.81 |
55 | Luke Hohmann Beyond Software Architecture: Creating and Sustaining Winning Solutions | 2003 | 978-0201775945 | 27 | 4.56 | |
56 | Grady Booch Unified Modeling Language User Guide, The (2nd Edition) | 2005 | 978-0321267979 | 81 | 3.30 | |
57 | Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project | 2005 | 978-0596007591 | * | 13 | 4.85 |
58 | Michael Feathers Working Effectively with Legacy Code | 2004 | 978-0131177055 | 21 | 4.86 | |
59 | Kent Beck Test Driven Development: By Example | 2002 | 978-0321146533 | * | 27 | 4.11 |
60 | Per Kroll, Philippe Kruchten The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP | 2003 | 978-0321166098 | 14 | 4.79 | |
61 | Thomas Erl Service-Oriented Architecture: Concepts, Technology, and Design | 2005 | 978-0131858589 | 60 | 4.15 | |
62 | Cem Kaner, etc. Testing Computer Software (2nd Edition) | 1999 | 978-0471358466 | 35 | 4.34 | |
63 | Frank Buschmann, etc. Pattern-Oriented Software Architecture Volume 1: A System of Patterns | 1996 | 978-0471958697 | * | 16 | 4.50 |
64 | Harold Abelson, Gerald Jay Sussman Structure and Interpretation of Computer Programs - 2nd Edition | 1996 | 978-0262011532 | 157 | 3.44 | |
65 | Dan Pilone UML 2.0 in a Nutshell | 2005 | 978-0596007959 | 14 | 4.57 | |
66 | Brett D. McLaughlin, etc. Head First Object-Oriented Analysis and Design | 2006 | 978-0596008673 | ** | 35 | 3.77 |
67 | Johanna Rothman Manage It!: Your Guide to Modern, Pragmatic Project Management | 2007 | 978-0978739249 | * | 7 | 5.00 |
68 | James Shore, Shane Warden The Art of Agile Development | 2007 | 978-0596527679 | 11 | 4.64 | |
69 | Brian W. Kernighan, Rob Pike The Practice of Programming | 1999 | 978-0201615869 | 49 | 3.96 | |
70 | Ron Jeffries, etc. Extreme Programming Installed | 2000 | 978-0201708424 | 31 | 4.35 | |
71 | Scott W. Ambler, Pramodkumar J. Sadalage Refactoring Databases: Evolutionary Database Design | 2006 | 978-0321293534 | * | 19 | 4.42 |
72 | Jared Richardson, William Gwaltney Ship it! A Practical Guide to Successful Software Projects | 2005 | 978-0974514048 | 24 | 4.46 | |
73 | Greg Hoglund, Gary McGraw Exploiting Software: How to Break Code | 2004 | 978-0201786958 | 27 | 4.41 | |
74 | Michael Nygard Release It!: Design and Deploy Production-Ready Software | 2007 | 978-0978739218 | * | 17 | 4.47 |
75 | Edward Yourdon Death March (2nd Edition) | 2003 | 978-0131436350 | 68 | 3.82 | |
76 | Stephen P. Berczuk, etc. Software Configuration Management Patterns: Effective Teamwork, Practical Integration | 2003 | 978-0201741179 | 23 | 4.57 | |
77 | Elfriede Dustin, etc. Automated Software Testing: Introduction, Management, and Performance | 1999 | 978-0201432879 | 40 | 4.55 | |
78 | Donald C. Gause, Gerald M. Weinberg Exploring Requirements: Quality Before Design | 1989 | 978-0932633132 | 25 | 4.72 | |
79 | Tom Gilb Competitive Engineering | 2005 | 978-0750665070 | 13 | 4.92 | |
80 | David J. Agans Debugging | 2006 | 978-0814474570 | 15 | 4.80 | |
81 | Eldad Eilam Reversing: Secrets of Reverse Engineering | 2005 | 978-0764574818 | 14 | 4.64 | |
82 | Robert L. Glass Facts and Fallacies of Software Engineering | 2002 | 978-0321117427 | 23 | 4.30 | |
83 | Martin Fowler Analysis Patterns: Reusable Object Models | 1996 | 978-0201895421 | 15 | 4.40 | |
84 | Matt Weisfeld The Object-Oriented Thought Process (2nd Edition) | 2003 | 978-0672326110 | 42 | 4.07 | |
85 | John M. Vlissides Pattern Hatching: Design Patterns Applied | 1998 | 978-0201432930 | 25 | 4.68 | |
86 | Johanna Rothman Behind Closed Doors: Secrets of Great Management | 2005 | 978-0976694021 | 24 | 4.38 | |
87 | Robert K. Wysocki Effective Project Management: Traditional, Adaptive, Extreme | 2006 | 978-0470042618 | 26 | 4.35 | |
88 | Ellen Gottesdiener Requirements by Collaboration: Workshops for Defining Needs | 2002 | 978-0201786064 | 14 | 5.00 | |
89 | Eric Evans Domain-Driven Design: Tackling Complexity in the Heart of Software | 2003 | 978-0321125217 | 42 | 4.24 | |
90 | Nick Rozanski, Eóin Woods Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives | 2005 | 978-0321112293 | 12 | 5.00 | |
91 | Peter Rob, Carlos Coronel Database Systems: Design, Implementation, and Management (8th Edition) | 2006 | 978-1418835934 | 27 | 3.37 | |
92 | Robert Orfali, etc. Client/Server Survival Guide (3rd Edition) | 1999 | 978-0471316152 | 43 | 4.40 | |
93 | Douglas Schmidt, etc. Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects | 2000 | 978-0471606956 | 21 | 4.33 | |
94 | Michael Lopp Managing Humans: Biting and Humorous Tales of a Software Engineering Manager | 2007 | 978-1590598443 | 21 | 4.29 | |
95 | Paul Graham Hackers and Painters: Big Ideas from the Computer Age | 2004 | 978-0596006624 | 55 | 4.07 | |
96 | Philippe Kruchten The Rational Unified Process: An Introduction (3rd Edition) | 2003 | 978-0321197702 | 34 | 3.91 | |
97 | Joel Spolsky The Best Software Writing I: Selected and Introduced by Joel Spolsky | 2005 | 978-1590595008 | 22 | 4.14 | |
98 | James O. Coplien, Neil B. Harrison Organizational Patterns of Agile Software Development | 2004 | 978-0131467408 | 13 | 5.00 | |
99 | Esther Derby, etc. Agile Retrospectives: Making Good Teams Great | 2006 | 978-0977616640 | 17 | 4.53 | |
100 | Henry S. Warren Hacker's Delight | 2002 | 978-0201914658 | 13 | 5.00 |
Legend
Year | = Year of Publication |
Jolt ** | = Jolt Winner |
Jolt * | = Jolt Productivity Award |
sum | = Number of reviews on Amazon |
avg | = Average rating on Amazon |
Scope of this List
For this Top 100 list I have included only books covering subjects found in the Software Engineering Body of Knowledge (SWEBOK). This means that I have left out books with main topics such as web design, computer science, business management and system administration. The main reason for this is that I had to limit the scope (or I would never be able to finish it).I also excluded all books that dealt with specific technologies, such as Java, .NET, Ruby and PHP. I was only interested in the potentially timeless software engineering classics. In my opinion, technology books do not fall into that category. I did include books on project management (as project management is one of the competences in SWEBOK) but only when those books explicitly dealt with managing software development. (That's why there is no generic PMP-related material on the list.)
Finding the Books
To find all these potentially timeless classics, I checked the best-selling books in these five Amazon categories:Books > Computers & Internet > Computer Science > Software Engineering
Books > Computers & Internet > Computer Science > System Analysis & Design
Books > Computers & Internet > Programming > Algorithms
Books > Computers & Internet > Programming > Software Design, Testing & Engineering
Books > Computers & Internet > Project Management
After I found all best-selling software engineering books, I subsequently found many other books through the "Customers Who Bought This Item Also Bought" cross-reference feature. And that's how I finally ended up with a list of 250 books.
Note: in case of multiple editions of the same book, only the most recent edition is listed on the chart, though reviews and ratings were combined for all available editions.
Doing the Calculations
When it was time to do the calculations, I checked the number of customer reviews on Amazon, and I ranked the books according to these numbers (= a measure of quantity). I also calculated the average Amazon ratings, and I ranked the books according to these ratings (= a measure of quality). I then checked the number of Google hits for each of the books, and I ranked them accordingly (= a measure of popularity). Finally, I took the three rankings, added extra points for all winners of Jolt awards, and then re-calculated it into a final ranking. This resulted in the list you now have before you.Note: this little project was performed in the first week of June, 2008. Current Amazon reviews and ratings might have changed since then.
I admit that the system I used has no scientific basis. Nevertheless, I think the results are quite interesting, and I'm sure the list can be of great help if you want to broaden your knowledge of the field of software engineering, in all its exciting dimensions. I suggest you start with number 1, and then slowly work your way down. It shouldn't take you more than a couple of years…