Book Review: Practices of an Agile Developer

This is my review of “Practices of an Agile Developer: Working in the Real World” by Venkat Subramaniam and Andy Hunt.


Aside from introductory and closing chapters, each chapter of the book describes one of 45 practices that are important in achieving an Agile development environment (one reviewer suggested it be renamed, “45 Habits of Highly Effective Developers”).

Each practices includes:

  • A practice number and title, for easy reference.
  • An explicit statement of the reasons why we might resist the practice described (the Devil’s temptation)
  • A discussion that explains the rational behind the practice and how to apply it practically, typically backed up by real-world examples
  • A summary of the key message of the chapter (the Angel’s advice)
  • The emotional outcomes of following the practice (What it Feels Like). This encourages emotional buy-in.
  • Notes on how to maintain perspective (“Keeping Your Balance”)


The language, typography and layout make it an easy read.
The division of the book into 45 practices means that:

  • You can read it in digestible chunks
  • You can dip-in to interesting chapters
  • It is a good reference book

The thing I like most about the book is the emotional awareness of the authors. They recognise that development is as much an emotional experience as it is a technical one, and that communicating good practice needs to discuss the readers’ emotional needs as well as their practical ones. This applies to both the presentation and content of each chapter. As a result, I felt good about reading this book, and I feel good about trying out the ideas presented.


One thing I disliked is that some of the “practices” described in the book are much more abstract than others. For example, practice #7 (“Know When to Unlearn”) is quite abstract in that it deals with a general attitude that you should adopt towards your existing practices. In contrast, practice #6 (“Invest in Your Team”) is much more concrete, in that it deals with the specifics of how to set up”Brown Bag Sessions” with your colleges. Now, there are both advantages and disadvantages of this variation in tone. On the positive side, the variety makes for a more interesting read, and if you’re taking a pick-and-mix approach to Agile it means that you are more likely to find a practice that you can experiment with at a level appropriate to your current team. On the other hand, it makes the practices a little more difficult to introduce in a systematic way.
The biggest failing of this book is that it does little to integrate the various Agile practices. Now, these practices can adopted independently, and this book does a lot to help you explore them individually. Clearly, then, suggesting that they are reliant upon each other would have been a mistake. On the other hand, getting everything working together isn’t always easy: a little more guidance in that direction would have been very welcome.


I wouldn’t want this to be my only book on Agile Development: you’ll need something else to help you integrate these practices into a system. It is well written, however, and would be a good reference for someone new to Agile Development. Experienced Agile developers will find many of the practices rather basic, but might still be inspired by this book to try new things. In my view this is a 4-star book.

Mini Book Review: Graphics Programming in Windows (Charles Petzold)

My personal library is overcrowded, so over the years I have found it necessary to dispose of many books on outmoded technology. This book by Charles Petzold is different. Indeed, its unparalleled coverage of graphics programming techniques make it worth every inch of the space it takes up on my shelf.

Although this it was written some time in the 1990s, it has become a timeless classic. Its contents apply to modern versions of Windows, as well as any other platform you care to mention. Of course, it lacks detail about the innovations that have occurred since it was written, but the programming techniques that it espouses are as useful as ever they were. Indeed, it is hard to find fault with a single example given in this volume.

Some people may find the book a little brief, in places. It lacks the depth of found in Petzold’s other books. Nevertheless, this book is without comparison in its subject area. If anyone is looking for a book on Windows Graphics, you’d be hard pressed to find one that is as informative as this one.

Sadly, Amazon lists this book as out of print. But, if you can obtain a copy of this book, I urge you to buy it.