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

Extreme Programming Explained: Embrace Change
by Kent Beck

Kanban: Successful Evolutionary Change for Your Technology Business
by David J Anderson

The Lean Startup
by Eric Ries

Patterns of Enterprise Application Architecture
by Martin Fowler

Object-Oriented Analysis and Design with Applications
by Grady Booch, Robert A. Maksimchuk, Michael W. Engel, Bobbi J. Young, Jim Conallen, Kelli A. Houston

Refactoring: Improving the Design of Existing Code
by Martin Fowler, Kent Beck, John Brant and William Opdyk

Working Effectively with Legacy Code
by Michael Feathers