'Agile Software Development- Principles, Patterns, and Practices'
by Robert C Martin

I really enjoyed reading this book. After a period of reading technical books that were, to say the least, uninspiring, this book came as a great relief.

It sets out to teach the foundations of Agile Development, and, to my mind, it succeeds admirably. The style is thoroughly practical and easy to read, with code in Java and C++. It walks the reader through the process of developing applications using agile methods.

But the book is not just about 'how-to', it also explains the whys and the wherefores of agile development so that it is possible to extrapolate with confidence from the examples given - something all to often missing in technical computing texts these days.

This is not really the place to go into the details of what agile development is. Suffice to say that it is a development method that involves developing software in small iterations, emphasising involving the customer and making sure that each iteration delivers new value to the customer.

In order to do this a number of techniques have been developed by the agile community - some of which are also applicable to non-agile development. These techniques include pair-programming (having the programmers working in pairs at a single computer), test driven development (write the tests before the code) and refactoring (re-writing existing code to make it more stable and its intentions clearer).

The book, however, goes further and discusses agile design, as well as the techniques. In doing so, Robert Martin offers a number of design principles that help to keep agile development on track. Some, like the 'Single Responsibility Principle' - classes should only have one responsibility - are agile orientated restatements of well known principles. Others, such as the 'Dependency Inversion Principle' are more directly derived from agile development.

I confess that I'm sympathetic to this style of working, since in many ways it mirrors fairly closely the way I've worked as a multi-player games programmer over the past twenty years. What I wasn't able to do, though, was to codify the procedures I had empirically developed. In that sense, this book was a revelation to me.

If you want to find out what the agile revolution is all about, or you want to formalise your existing agile practices, this book is the one to get.

Highly recommended.

Alan Lenton
11 June 2004

Agile Software Development - Principles, Patterns, and Practices
by Robert C Martin
0-13-597444-5
Prentice Hall £34.99


Return to the reviews page

Back to the Phlogiston Blue top page


If you have any questions or comments about the articles on my web site, click here to send me email.