This book looks at how to use agile techniques to make IT projects more effective.

There are three main parts to the book, covering Ideas, Case Studies, and Techniques. The opening chapter is titled Guiding Principles, and is based on the idea that development teams should take an approach based on values and principles rather than practices. McDonald points out that practices change according to context, but values and principles are more generally applicable.

The characteristics he suggests are that you should deliver value; collaborate; iterate; simplify; consider context; decide wisely; and reflect and adapt. The list would be difficult to argue with, and there's a certain degree of stating the obvious, but that doesn't mean the list (and the discussion of the ideas on the list) isn't useful. This chapter, along with all the others, ends with a short section titled 'If You Remember Nothing Else' that summarises the rest of the chapter.

The next chapter looks at helpful concepts that underlie the approach and techniques described in the rest of the book. The concepts relate to ways of categorizing how agile developers should think about analysis, in terms of needs and solutions; outcome and output; and discovery and delivery. This is followed by a brief look at the influence of Lean Startup, the technique outlined in a book of that title. A chapter on decision making includes some interesting points on how cognitive biases can get in the way of decision making, while the chapter titled 'deliver value' explains the ideas behind feature injection, as well as minimum viable product. This first part of the book finishes with a chapter on analysis with an agile mindset.

Part II of the book contains four chapters each with a single case study; a conference submission system, a commission system; a data warehouse; and a student information system. Each chapter looks at the need for the system; the possible solutions; the 'deliverance of value'; and what lessons were learned.

The final part of the book is titled Techniques and each of the chapters within it focuses on a single idea used in agile development. The chapters cover understanding stakeholders; understanding context; understanding the need; understanding the solutions; and organizing and persisting solution information. This is probably the most useful part of the book. Each idea is explained in terms of what it is and the context it should be used in, and the author explains not only when you should use it, but when it definitely shouldn't be used, and how to use it.

I had mixed feelings about this book. As a developer, it makes a reasonably interesting read, but as with many books about the theory of agile development, a lot of it does sound like stating the blindingly obvious. However, if you stick with it you'll pick up some concepts that put things into perspective or give you alternative ways of thinking about project development. A project leader who needs to work in an environment that uses agile development would also find it useful. It does a good job of teaching you the terminology, and the section on techniques has some genuinely useful concepts.