Agile Programming

Extreme Programming Explained: Embrace Change (0201616416) by Kent Beck is the original book on XP by the man who invented it. Still the best overview. Now available in a second edition (0321278658) that's very different.

Extreme Programming Installed (0201708426) by Ron Jeffries, Ann Anderson, Chet Hendrickson, Kent Beck is more detailed, and will help you learn to do it.

Planning Extreme Programming (0201710919) by Kent Beck, Martin Fowler concentrates on the Planning Game.

Refactoring: Improving the Design of Existing Code (0201485672) by Martin Fowler is a necessary resource if you're going to Refactor Mercilessly.

Extreme Programming Applied: Playing to Win (0201616408) by Ken Auer, Roy Miller is a practical book with some slightly different points of view.

Agile Software Development (0201699699) by Alistair Cockburn is a really cool book about the people aspects of software development. It goes really deep. It's not an XP book, by the way.

Lean Software Development: An Agile Toolkit for Software Development Managers (0321150783) by Mary and Tom Poppendieck. This one is on my list to read. I read some of the pre-publication drafts, and found it very good. Good enough that I want to read the whole book. This book explores the value equation to the business of practicing agile development.

Development Tools and Practices

Working Effectively with Legacy Code by Michael Feathers (0131177052) Another book on my list to read based on some of the pre-publication excerpts. How do you alter a system that has no safety net of unit tests and is an architectural mess? Here's a bunch of techniques. As Michael Feathers describes it:

Java Tools for Extreme Programming: Mastering Open Source Tools Including Ant, JUnit, and Cactus (047120708X) by Richard Hightower, Nicholas Lesiecki is more about the tools than it is about Extreme Programming, but that's certainly not a condemnation of the book.

Writing Effective Use Cases (0201702258) by Alistair Cockburn. I know longer think that it's necessary to fully document your requirements on paper in order to realize those requirements in software, but if you want to do so, this book provides an excellent lesson in writing Use Cases at various levels. Most Use Case authors should read this--I've seen some really atrocious "Use Case documents."

Enterprise Applications

EJB Design Patterns: Advanced Patterns, Processes, and Idioms (0471208310) by Floyd Marinescu is the book on EJB design patterns. Much more in-depth than that published by Sun's engineers.

Patterns of Enterprise Application Architecture (0321127420) by Martin Fowler, et. al. If you're building distributed, persistent systems, this is the book to read first.


See also: BookReviews, ReadingList

CategoryBooks