As an Agile Evangelist for Borland, and an officer of Agile Austin, I am often asked for good references on getting started with agile. This usually goes beyond what can be found by applying your Google-skills, although that's a good way to get a taste of agile thinking. The best way, of course, is to learn agility from experienced practitioners. There is nothing more effective than hands-on mentoring. However, this question is usually asked in a context where direct full-time exposure is not available. In this case I recommend another old-fashioned technique—reading books. This narrows my challenge to identifying which books, from the dozens on my bookshelf, to recommend. Many are excellent treatments of particular aspects of agility. Some are particularly relevant to specific circumstances. Over time some newer titles rise above their predecessors. There are a few that I find myself recommending more frequently as striking an especially good balance between breadth of coverage and depth of details. I include four such examples below. Each addresses a somewhat different, although not necessarily distinct, audience. I leave it to you to self-select which may be right for you.
Agile & Iterative Development (A Manager's Guide) by Craig Larman provides an excellent survey of agile methods and practices. It is organized for easy self-directed exploration, with extensive margin references to sections that expand on topics mentioned. It includes an excellent section on the historical foundations of our current software development practices that leads to building a solid business case for agile methods. About half of the text is devoted to comparative case-studies of Scrum, Extreme Programming, Unified Process and Evo. This provides a fairly objective overview of each process. The book concludes with agile practice tips and frequently asked questions (with answers) common to the whole family of agile and iterative development methods.
Implementing Lean Software Development (From Concept to Cash) by Mary and Tom Poppendieck takes a principle-based approach. The seven principles of Lean Software Development are; Eliminate Waste, Build Quality In, Create Knowledge, Defer Commitment, Deliver Fast, Respect People and Optimize the Whole. Each of these principles is discussed in detail. The theoretical foundations are supplemented by real-world examples, case studies and experience reports. Each section ends with a list of concrete exercises called "Try This", which invites you to put your knowledge into practice. This book is an excellent way for agile leaders focus on the most significant factors for success.
The Art of Agile Development by James Shore and Shane Warden is an excellent guide for the agile practitioner. It consolidates years of experience with agile practices based primarily on Extreme Programming (XP), which has long been considered a good set of engineering practices to compliment the management practices of Scrum. The specific practices are well organized, clearly explained, extensively cross-references and presenting in an appealing "pattern language" format. The "Getting Started" section provides a solid foundation for understanding agile mechanics and even deciding if it is right for your situation. The "Mastering Agility" section gives a good description of the values and principles that make agile work. This makes a good concluding section because it provides a good roadmap for developing more agile maturity once you've had some success applying the specific practices.
Agile Software Development (The Cooperative Game) 2nd Edition by Alistair Cockburn is a tour de force describing the working principles of agility. Interviews and analysis of dozens of agile projects is distilled into a series of powerful observations and recommendations. This is the book you need to guide the tailoring of agile methods to your particular environment and circumstances. Many inexperienced teams lose much of the value of their agile methods by adapting them in inappropriate ways before they understand the subtle interactions between various agile practices. This book helps you to stay in the "safe zone" or the "sweet spot" when you are starting out, and to get the more effectiveness from your ongoing process improvements as you gain more experience and maturity.
These references should give you a good place to start. Then you'll have to put what you've read into practice. That's where I've found that the real learning begins.
Dale,
I also found _Agile Project Management with Scrum_ very useful when I first started learning about agile and scrum: http://www.amazon.com/Agile-Project-Management-Microsoft-Professional/dp/073561993X
Posted by: Stan Taylor | November 05, 2008 at 07:31 PM