I have finished reading Agile Management for Software Engineering, a book by David J. Anderson, and I am very impressed. Granted, the book is already four years old (I’m a little behind with my reading) but it’s still relevant. It is the first book I’ve read that tries to back up the agile approach with solid theory. In this book David uses the Theory of Constraints to explain why lean/agile project life cycles lead to success, and a higher return on investment (ROI), more often than traditional life cycles. He also presents an interesting in-depth analysis of Scrum vs. XP vs. FDD.
However, since I am Dutch, you can usually expect me to have found something to complain about (or disagree with). And, being the considerate person that I am, I would never try to disappoint you. So, here are my three gripes:
David doesn’t hide the fact that he has a preference for Feature-Driven Development (FDD). After all, he has been practicing it for many years. And I have no trouble with that, except that I felt he was favoring FDD a little too often with some of his analysis. Whatever the subject, and whatever his reasoning, FDD always seemed to come out on top. It seemed as if an Italian was trying to prove that Rome is the greatest city in the world. (Which it isn’t. It’s London.) Though I could not bother myself to find any specific flaws in David’s logic, I did find it a bit suspicious.
Another thing that annoyed me was his view on the complexity of software projects. At one time David admits that software projects are nonlinear (and therefore complex) by nature, while on other pages David tries to convince his readers that his linear estimation technique (involving feature lists) has produced accurate results for years. I think this is a contradiction. You cannot have an accurate linear estimation technique for a nonlinear phenomenon. It’s like estimating the noise Italians will make on a bus by counting the number of Italians. (Everybody knows the correlation is exponential.)
However, the worst thing about the book is that it wasn’t funny. It does not contain any jokes. You might find this strange, but I always need a bit of lightness to help me through the tough parts in a book. Unfortunately, there was not one little bit of silliness to help me crawl through 300 of pages of dry theory. David made me feel I was back on the university; the only difference being that David’s formulas weren’t hand-scribbled in illegible writing and photocopied with a twenty year old copier. I think, after having reached the last page of the book, I let out such a big sigh of relief that I must have left my neighbors wondering.
Nevertheless, if you’re looking for a book that does more than simply saying "Agile is great, and traditional methods stink!" then I suggest you give it a try. The book is solid and important. Go buy it!