As explained in my post on M.E.T.A Career Development, Engineering knowledge is one of the 4 pillars of a good professional development program. Here is my list of recommended software engineering books. By design, a maximum of 5 books is given in each area. If you’ve read all 5, time to broaden your horizons and learn about the other areas more.
Requirements & Modeling
|Software Requirements, Kark Wiegers
||An overview of collecting, writing and managing requirements.
|Writing Effective Use Cases, Alister Cockburn
||The definitive book on writing Use Cases, the requirements technique for RUP.
|User Stories Applied, Mike Cohn
||The definitive book on User Stories, the preferred requirements technique for many Agile methodologies.
|UML Distilled 3e, Martin Fowler
||One of the most popular SE books ever and with good reason. Updated for UML 2 and packed with sound advice on getting the most out of UML.
|Applying UML and Patterns 3e, Craig Larman
||The world’s best selling text on OOA/D. Highly recommended by Martin Fowler, Phillip Krutchen and Steve McConnell.
|Pragmatic Programmer, Andy Hunt, Dave Thomas
||One of the best books on the practice of programming ever written. Concise, pragmatic, influential.
|Code Complete 2, Steve McConnell
||The bible on software development. If you only ever read one book on software development, make it this one.
|Object Oriented Software Construction 2e, Betrand Meyer
||Hard-code OO advice from the father of Design-By-Contract.
|Progamming Pearls 2e, Jon Bentley
||Steve McConnell says: I use something I learned from Bentley’s essays nearly every day that I program.
|Software Estimation, Steve McConnell
||Demystifying the Black Art.
|Lessons Learned, Cem Kaner et al
||Tim Lister says: Buy a carton-load and hand a copy out to everyone who tests and to everyone who thinks that she or he manages testers. (I agree.)
|FIT for Delivering Software, Ward Cunningham
||Executable specifications is the right way to black-box test software’s functionality. Start here.
|Test Driven Development: A Practical Guide, David Astels
||Mary Poppendieck says: This is the book to get if you are implementing test-driven development. (The Kent Beck one sounds just as good.)
|Testing Computer Software, Cem Kaner et al
||An overview of testing – the best-selling testing book of all-time.
|Managing the Testing Process, Rex Black
||Practical Tools and Techniques for Managing Hardware and Software Testing
Maintenance & Support
Configuration & Collaboration
|The Mythical Man Month, Fred Brooks
||Arguably the most influential SE text of all time.
|Principles of Software Engineering Management, Tom Gilb
||The breakthrough book on evolutionary delivery. Still required reading for professional level at Construx (Steve McConnell’s consulting company) and the basis for every major methodology promoted today.
|Rapid Development, Steve McConnell
||Taming Wild Software Schedules. An all-time classic.
|Peopleware: Productive Projects and Teams 2e, Tom DeMarco, Tim Lister
||Joel Spolsky says: Bill Gates has built a company full of managers who read Peopleware. I can’t recommend this book highly enough. It is the one thing every software manager needs to read… not just once, but once a year.
|Agile Project Management, Jim Highsmith
||How agile methods and rigorous project management can be combined to create innovative products.
|Joel on Software, Joel Spolsky
||A collection of essays from one of the most popular SE blogs around.
|The Catheral and the Bazaar, Eric Raymond
||The landmark text on the open source movement.
|CIO Wisdom II, Phillip Laplante, Thomas Costello
||How IT impacts the business world and how the business world perceives IT.
|Microsoft Secrets, Cusumano
||How the World’s Most Powerful Software Company Creates Technology, Shapes Markets and Manages People
|The Business of Software, Cusumano
||Business models for software in the modern era.
If you think a different book ought to be added, read the ones I recommend and tell me which one to drop from the current set and why. Great books are released all the time and I expect the list to evolve over time along with best practices.