Bookshelf

I have found books to be an invaluable tool in my quest for excellence. For the 'classic fundamentals', I haven't just read in them, I've read them. Over the years, ideas in these books have pointed to solutions to some very thorny problems I and the teams I'm on have faced. I'm always amazed (and a little disappointed) that so many people try to solve all their problems on their own, when the collected and vetted wisdom of others in solving these problems is right in front of them.

Classics and Fundamentals
Domain-Driven Design by Eric Evans
Agile Estimating and Planning by Mike Cohn
Agile Project Management with Scrum by Ken Schwaber, Jeff Sutherland, and Mike Beedle
The Clean Coder by Robert C. (Uncle Bob) Martin
Rapid Development by Steve McConnell
Code Complete by Steve McConnell
Object-Oriented Technology by David H. Taylor
UML Distilled by Martin Fowler
Performance Solutions by Connie Smith
The Mythical Man-Month by Fred Brooks
The XML Handbook by Charles F. Goldfarb
An Introduction to Operating Systems by Harvey Dietel
The Computer and The Brain by John von Neumann
The Clean Coder: A Code of Conduct for Professional Programmers by Robert Martin (Uncle Bob)
Rapid Development by Steve McConnell
Programming Windows 3.1 by Charles Petzold
The Pragmatic Programmer by Dave Thomas and Andy Hunt
Extreme Programming Explained by Kent Beck
The Nature of Software Development by Ron Jeffries
Test Driven Development by Kent Beck
Implementing Lean Development by Mary and Tom Poppendieck
Test-Driven Development by Dave Astels
Patterns of Enterprise Application Architecture by Martin Fowler
Collaboration Explained by Jean Tabaka
Object Models by Peter Coad
Refactoring by Martin Fowler
Design Patterns by Gang of Four
xUnit Test Patterns by Gerard Meszaros
Managing the Testing Process by Rex Black
Agile Software Development by Alistair Cockburn
The Best of Booch by Grady Booch
A Practical Guide to Testing Object-Oriented Software by John D. McGregor
Working Effectively With Legacy Code by Michael Feathers
Agile Testing by Lisa Crispin and Janet Gregory
More Agile Testing by Lisa Crispin and Janet Gregory
Surviving Object-Oriented Projects by Alistair Cockburn
Refactoring to Patterns by Joshua Kerievsky
Continuous Integration by Paul Duvall
Continuous Delivery by Jez Humble
Implementation Patterns by Kent Beck
Lean Software Development by Mary and Tom Poppendieck
Decline & Fall of the American Programmer by Edward Yourdon
Rise & Resurrection of the American Programmer by Edward Yourdon
The Mythical Man-Month by Frederick P. Brooks
The Design of Design by Frederick P. Brooks
Lessons Learned in Software Testing by Cem Kaner
Specification By Example by Gojko Adzic
Object-Oriented Analysis and Design with Applications by Grady Booch
Analysis Patterns by Martin Fowler
Object-Oriented Construction by Bertrand Meyer

Potential Classics Or Fundamentals
Dependency Injection in .Net by Mark Seemann
Javascript: The Good Parts by Douglas Crockford
Testable Javascript by Mark Ethan Trostler
Executable Specifications with Scrum by Mario Cardinale
Enterprise Integration Patterns by Gregor Hohpe
The Thoughtworks Anthology by Thoughtworks, Inc.
SOA Design Patterns by Thomas Erl
Service Design Patterns by Robert Daigneau
The Machine That Changed the World by James P. Womack
Debug It!: Find, Repair, and Prevent Bugs in Your Code by Paul N. Butcher
Object Persistence by Roger Sessions
Problem Frames by M.P.A. Jackson
Management 3.0: Leading Agile Developers, Developing Agile Leaders by Jurgen Appelo
Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition by Lyssa Adkins
Growing object-oriented software, guided by tests by Nat Pryce


Reading List
Smalltalk Best Practice Patterns by Kent Beck
Guide to Better Smalltalk by Kent Beck
Structured Design by Larry Constantine and Ed Yourdon

Others
JavaScript Patterns by Stoyan Stefanov
Learning WCF by Laura Bustamante
SOA Design Patterns by Thomas Erl
Essential Business Process Modelling by Michael Harvey
Professional LINQ by Scott W. Klein
Executable Specifications with Scrum by Mario Cardinale
Enterprise Integration Patterns by Gregor Hohpe
Effective REST Services via .NET: For .NET Framework 3.5 by Kenn Scribner UML Distilled by Martin Fowler
Understanding enterprise SOA by Eric Pulier
The Pattern Almanac 2000 by Linda Rising
Essential business process modeling by Michael Havey
XML Specification Guide by Ian Graham
COM+ and the Battle for the Middle Tier by Roger Sessions
Pragmatic Thinking and Learning by Andy Hunt
Managing Software Debt by Chris Sterling
Language Design Patterns by Terence Parr
The lean enterprise by Dan Dimancescu
Design Patterns and Contracts by Jean-Mark Jezquel
The Oslo Modeling Language: Draft Specification - October 2008 by David Langworthy
A Guide to Claims-Based Identity and Access Control by Dominick Baier
Design By Contract, By Example by Richard Mitchell
Pragmatic Unit Testing in C# with NUnit by Andy Hunt
Simple architectures for complex enterprises by Roger Sessions
Becoming Agile by Smith, Greg M.
Agile Coaching by Rachel Davies
Getting Started with Metro Apps by Ben Dewey
Essential Windows Communication Foundation (WCF) by Steve Resnick>br/> CoffeeScript by Trevor Burnham