The Art of Agile Development
James Shore & Shane Warden
O'Reilly Media, 2007
Rating: 4/5 (very good)
There's been a lof of fuss about Agile Development lately. Many folks see it like the cool new thing, the way you must code from now on, but most don't actually know what all of this is about. Fact is agile development isn't simply a new way to code software, but comprises a series of different ways to do the normal activities. These new methods, grouped together, make up a new way of work.
Were my words clear? No? Great, I thought so. This is the moment for The Art of Agile Development to come in. It's a deep and quite complex work from authors James Shore and Shane Warden: the first is one of the original signers of the Agile Manifesto, which practically invented Agile Development. The books is complex because it needs to be such: you can't "migrate to Agile" in one day, your team has to practice - as the cover image shows, you need to grow.
First of all, the books tries to make you understand why you need (or simply want) Agile Development: since the path is not straight, but more like a forest, you must - as a team leader - convinced of what you are doing. In some cases, it might also make you understand that you don't need Agile Development, which is a good thing anyhow - and the book remains useful in any case, as it's full of suggestions and practices which can be applied to any working team.
The Art of Agile Development unveils its concepts by teaching the most famous example of Agile Development: Extreme Programming. This particular case of is actually so well-known that most people tend to identify Agile Development with it. The book assumes your positions allows you to make decisions for a team - that's because Agile Development requires a lot of changes in the way your team works. It also assumes you are willing to risk some of your and your team's time and resources in practicing Agile Development: improvement needs some sacrifice.
The books offers and in-depth exploration of each of the covered topics, which you can read by browsing through its table of contents. You are step-by-step taught about what you need to, what results you can expect, and when you can expect them. I believe the last two aspects are very important, as they help you evaluate if you're doing things properly, and they allow you to make changes down the road without losing days and weeks in incorrect work behaviours.
Although there's a main "line", alternatives are always explored by the authors. for instance chapter 6, which is about Planning, in a certain place supports the adoption of adaptive release planning; it, however, explains the differences with other possible choices such as predictive release planning, and tries to make you understand where one approach can work better than the other. You find a lot of other goodies in any chapter: answers to FAQs, pointers to external resources, and especially great Contraindications paragraphs. These will prove to be quite useful, as you'll be able to know beforehand how the adoption of what is explained in a chapter might create problems to your working environment, and therefore be able to avoid troubles.
All in all, The Art of Agile Development is a great book, but it's demanding. It requires you to study it beforehand, then make important decisions, and then try to convince your team about those decision - some of them, at first glance, might seem a bit awkward to team members. You'll then need to apply what you learned in an effective manner. It's not an easy reading, but one things I like most about this book are the "internal links", which simplify the learning process: there are gray text boxes named Allies spread everywhere, which point you to other sections of the book which are related to what you are reading.
If you're a team manager and want to try to move towards Agile Development, this is definitely the book for you. If you don't feel you want this, but still want to improve the productivity of your team, this book is for you as well, as it offers tons of tips on how to organize work in a modern and efficient way.