I read a lot - not all of it related to agile or business management, but enough. Below are some of the important books that have shaped my thinking (and writing). Not all of them a great (as you can see from my ranking), but they all contain some interesting ideas. This group of reviews will focus on those books that relate to technical practices.
Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts
Put simply; if you are a software developer, you must understand this book. Nearly 15 years old, you would think this book (in fact this idea) would be well enough understood to be redundant. Sadly this book remains as relevant today as when I first read it all those years ago.
This book does a great job of showing how something that seems so easy is actually really hard and then makes it easy again.
Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series) by Kent Beck and Cynthia Andres
Too often people only think of Scrum when they think of Agile, forgetting the many brilliant concepts available to developers in Extreme Programming. While this book may be old, I consider it relevant (almost required reading) for any developer learning or using Agile. Put simply, if you’re a developer you must read this book.
People are, in general, bad at estimating with any definition or accuracy. That’s pretty much the core of this book; and it puts across that message quite well. It then puts forth some good ideas on how to work around this. Using the Fibonacci sequence is a stroke of brilliance and is pretty much the de-facto standard in all agile projects. The book hasn’t, however, held up well over time. It can lack coherence, and once you understand the core message, there’s not much additional value in reading the whole book.