jump to navigation

Books

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.

Methodology

Facts and Fallacies of Software Engineering, Robert Glass Interested in developing great software? Start here.
Agile Estimating and Planning, Mike Cohn The definitive guide to agile/adaptive planning. One of my all time favorites.
Implementing Lean Software Development, Mary Poppendieck, Tom Poppendieck A simply brilliant book presenting the underlying values and resulting practices of Agile done right.
Balancing Agility and Discipline, Barry Boehm, Richard Turner An analysis of the strengths and weaknesses of agile/adaptive vs disciplined/predictive approaches.
RUP Made Easy, Per Kroll, Phillip Kruchten An excellent overview of the most popular process framework around from the guys in charge of it.

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.

Architecture

Software Systems Architecture, Rozanski & Woods The best book I’ve seen on what software architecture is ultimately about: providing multiple viewpoints and perspectives on high level system design.
Patterns of Enterprise Architecture, Martin Fowler A solid introduction to multi-tier architecture patterns.
Enterprise Integration Patterns, Eric Hohpe A landmark text on integration patterns.
Beyond Software Architecture, Luke Hoffmann An important complement to the technical aspects of architecture: how business issues impact software architecture and vice versa.
Software Architecture in Practice 2e, Len Bass et al The best selling text on software architecture.

Design

Design Patterns, Eric Gamma et al The all-time classic that changed how software was developed and how design was discussed.
Agile Software Development: Principles, Patterns and Practices, Robert C. Martin Deep wisdom on the essence of good OO design.
Domain Driven Design, Evans Domain understanding is at the heart of great software design. This book shows how to do it.
Software for Use, Larry Constantine, Luck Lockwood The definitive guide on user-centered design: turning Use Cases and User Stories into effective user interfaces.
About Face 2.0, Alan Cooper The landmark text on interactive design.

Construction

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.

Technical Communication

Spring Into Technical Writing for Scientists and Engineers, Barry Rosenberg A collection of technical writing tips for authors who are not technical writers by profession.
Microsoft Manual of Style for Technical Publications 3, Microsoft Press Microsoft’s bible on the topic.
Developing Quality Technical Information 3e, Hargis et al IBM’s bible on the topic.
Read Me First! A Style Guide for the Computer Industry 2e, Sun Technical Publications Sun’s bible on the topic.
Information Mapping, How to organize information for maximum effectiveness.

Testing

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

Working with Legacy Code, Michael Feathers Making the most of legacy applications.
Refactoring, Martin Fowler The all-time classic on improving the design of existing code.
Enterprise Unified Process, Scott Ambler Recommendations on extending the UP for Production and Retirement phases, matchng disciplines and more.
Are Your Lights On?, Donald Gause, Jerry Weinberg An interesting look at finding what the real problem is.
Visible Ops Handbook, Behr et al How to get started with ITIL.

Quality

Process Improvements Essentials: CMMI, Six Sigma, and ISO 9001, Persse An overview of the 3 most common SPI frameworks around.
Agile Retrospectives, Derby & Larsen Retrospectives for iterative and incremental projects.
Peer Reviews in Software, Karl Wiegers The definitive book on peer reviews.
Measuring and Managing Performance in Organizations, Rob Austin DeMarco and Lister: We believe this is a book that needs to be on the desk of just about anyone who manages anything.
Metrics and Models in Software Quality Engineering, Kan Caper Jones says: This is the single best book on software quality engineering and metrics that I’ve encountered.

Configuration & Collaboration

Practical Development Environments, Doar A book on modern practices and tools for toolsmiths.
Software CM Patterns, Stephen Berczuk Best practices for organising SCM.
Collaboration Explained, Tabaka Facilitation Skills for Software Project Leaders

Engineering Management

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.

Software Business

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.

Comments»

1. I.T. Professional Development « Agile Teams, Open Software, Passionate Users - July 6, 2007

[…] Books jump to navigation […]

2. weekly linkdump - max - блог разработчиков - July 13, 2007

[…] Books « Agile Teams, Open Software, Passionate Users — отличная подборка книг […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: