Learning items in software development


A subjectively created list of books about software development grouped in the following categories:


Category I: Practitioners sharing their hard-won and thoughtful experiences.


Category II: Foundational knowledge.


Category I: Practitioners sharing their hard-won and thoughtful experiences


 


Agile Principles, Patterns, and Practices in C# by Robert C. Martin, Micah Martin


The Art of Agile Development by James Shore, Shane Warden


Implementation Patternsby Kent Beck


Extreme Programming Explained: Embrace Change (2nd Edition) by Kent Beck and Cynthia Andres


Object Solutions: Managing the Object-Oriented Project by Grady Booch


Organizational Patterns of Agile Software Development by James O. Coplien, Neil B. Harrison


Agile and Iterative Development: A Manager’s Guide by Craig Larman


Agile Software Development: The Cooperative Game by Alistair Cockburn


Agile Software Development With Scrum by Mike Beedle, Ken Schwaber


The Enterprise and Scrum by Ken Schwaber


The Craft of Software Testing: Subsystems Testing Including Object-Based and Object-Oriented Testing by Brian Marick


Test-Driven Development: A Practical Guide by David Astels


Concurrent Programming on Windows Vista: Architecture, Principles, and Patterns by Joe Duffy


Multi-Paradigm Design for C++ by James O. Coplien


Working Effectively With Legacy Code by Michael Feathers


Windows Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition by Mark Russinovitch, David A. Solomon


Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans


 Agile Project Management: Creating Innovative Products by Jim Highsmith


Agile Estimating and Planning by Mike Cohn


Software Pioneers by Manfred Broy (Editor), Ernst Denert (Editor)


I. M. Wright’s Hard Code by Eric Brechner 


Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas


Software Craftmanship: The New Imperativeby Pete McBreen


 


Category II: Foundational knowledge


 


Software design by David Budgen


Software for Use: A Practical Guide to the Models and Methods of Usage-Centered Design by Lucy A.D. Lockwood, Larry L. Constantine


Sketching User Experiences: Getting the Design Right and the Right Design by Bill Buxton


Object-Oriented Analysis and Design with Applications (3rd Edition) by Grady Booch


Practical Guide to Structured Systems Design (2nd Edition) by Meilir Page-Jones (Author)


Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design by Edward Yourdon


Structured Analysis and System Specification by Tom Demarco and P. J. Plauger


Structure and Interpretation of Computer Programs – 2nd Edition by Harold Abelson, Gerald Jay Sussman


Instructor’s Manual t/a Structure and Interpretation of Computer Programs – 2nd Edition by Julie Sussman


Computer Science: An Overview (9th Edition) by J. Glenn Brookshear


Generative Programming: Methods, Tools, and Applications by Krzysztof Czarnecki, Ulrich Eisenecker


Foundations of Empirical Software Engineering: The Legacy of Victor R. Basili by Barry Boehm