I recently had the honor of reviewing the Pragmatic Programmers’ latest work of art, Venkat Subramaniam and Andy Hunt’s Practices of an Agile Developer. The book doesn’t ship until March 1st, but I would certainly consider adding it to my Amazon.com wish list now, especially if I were new to agile programming or wanted to promote agile practices within my team. It was refreshing to read such a concise, yet comprehensive overview of what agility is.
The book covers all the major agile practices (and several of the not-so-major ones) including minimizing up-front design, being honest even when it hurts, practicing iterative development, writing tests, letting customers make business decisions, integrating continuously, and being a mentor. The focus is not on a single agile methodology like eXtreme Programming or Scrum, but on the practices common to all of these methodologies.
One thing I really liked about this book was that it was split up into 2 to 3 page “chunks” of information. (If you’ve read Chad Fowler’s My Job Went to India, you’ll know what I’m talking about.) Such “iterative” writing makes it much easier for busy geeks to digest. I’m not forced to maintain an excessive amount of context between reads.
Another thing I liked about this book was that it wasn’t dogmatic in its approach to agility. While reading, I didn’t feel that the practices were being crammed down my throat. Venkat and Andy did a good job of espousing the benefits of the practices without becoming preachy. This is an exceptionally good thing considering how difficult it can be to explain to “traditionalists” that agility can actually help, not hinder, the craft of software development.
Venkat and Andy’s creativity really shows with their “angel and demon” motif which is used throughout the book. At the beginning of each section, a demon tells you what the typical response to a common software development problem is. At the end of the section, an angel gives you a brief overview of the agile practice which was covered and why it’s so much better than what the demon tempted you to do.
If you’re new to agile development and want a good overview of what it’s all about, I highly recommend this book. If you’re an experienced agile developer and want a handy dictionary of common practices to refer to or push into the hands of a fellow developer who comes knocking, I highly recommend this book. If you’re fed up with the way software development is done and want to know some practical steps you can take today to begin programming more intelligently, I highly recommend this book.
Most importantly, if you’re passionate about creating software and want to be encouraged to continue striving for excellence in everything that relates to it, this book will give you the boost you need.