Wednesday, November 12, 2014

Book Review – Introduction to Agile Methods - Ashmore and Runyan

Introduction to Agile Methods
Click to Order on Amazon
First, as a disclaimer, I am a software testing consultant and also a project life cycle consultant. Although I do train teams in agile testing methods, I do not consider myself as an agile evangelist. There are many things about agile methods I like, but there are also things that trouble me about some agile methods. I work with organizations that use a wide variety of project life cycle approaches and believe that one approach is not appropriate in all situations. In this review, I want to avoid getting into the weeds of sequential life cycles versus agile, the pros and cons of agile, and instead focus on the merits of the book itself.

Since the birth of agile, I have observed that agile methods keep evolving and it is hard to find in one place a good comparison of the various agile methodologies. I have been looking for a good book that I could use in a learning context and I think this book is the one.

One of the issues that people experience in learning agile is that the early works on the topic are from the early experiences in agile. We are now almost fifteen years into the agile movement and many lessons have been learned. While this book references many of the early works, the authors present the ideas in a more recent context.

This is a very easy to read book and very thorough in it’s coverage of agile methods. I also appreciate that the authors are up-front about some of the pitfalls of certain methods in some situations.

The book is organized as a learning tool, with learning objectives, case studies, review questions and exercises, so one could easily apply this book “as-is” as the basis for training agile teams. An individual could also use this book as a self-study course on agile methods. There is also a complete glossary and index which helps in getting the terms down and using the book as a reference.

The chapter on testing provided an excellent treatment of automating agile tests, and manual testing was also discussed. In my opinion, there could have been more detail about how to test functionality from an external perspective, such as the role of functional test case design in an agile context. Too many people only test the assertions and acceptance-level tests without testing the negative conditions. The authors do, however, emphasize that software attributes such as performance, usability, and others should be tested. The “hows” of those forms of testing are not really discussed in detail. You would need a book that dives deeper into those topics.

I also question how validation is defined and described, relying more on surveys than actual real-world tests. Surveys are fine, but they don’t validate specific use of the product and features. If you want true validation, you need real users performing tests based on how they intend to use a product.

There is significant discussion on the importance of having a quality-minded culture, which is foundational for any of the methods to deliver high-quality software. This includes the ability to be open about discussing defects.

To me, the interviews were interesting, but some of the comments were a little concerning. However, I realize they are the opinions of agile practitioners and I see quite a bit of disagreement between experts at the conferences, so I really didn’t put a lot of weight in the interviews.

One nitpick I have is that on the topic of retrospectives, the foundational book, “Project Retrospectives” by Norm Kerth was not referenced. That was the book that changed the term “post-mortem” to “retrospectives” and laid the basis for the retrospective practice as we know it today.

My final thought is that the magic is not in the method. Whether using agile methods or sequential lifecycles like the waterfall, it takes more than simply following a method correctly. If there are issues such team strife, stakeholder disengagement and other organizational maladies, then agile or any other methodology will not fix that. A healthy software development culture is needed, along with a healthy enterprise culture and understanding of what it takes to build and deliver great software.

I can highly recommend this book for people who want to know the distinctions between agile methods, those that want to improve their practices and for management that may feel a disconnect in their understanding of how agile is being performed in their organization. This book is also a great standalone learning resource!

3 comments:

TheGeekiestWoman said...

This book is on safari.informit.com. You can read it there for the price of your monthly subscription.
While I always appreciate Randy Rice's commentary, as sSchwarzenegger said "I'll be back" after I finish reading this book on safari, but I wouldn't be reading it at all if Randy had not recommended it. I typically don't trust writers whose only claim to expertise is a couple certifications (after all, I also have those certifications but my claim to expertise is like Randy's: experientially acquired.).

S. Ashmore said...

Thank you, Randy, for your review and candid feedback. We will keep your suggestions in mind when we start on the second edition.

I do hope TheGeekiestWomen gives the book a chance because both Kristin and myself have been Agile practitioners for many years.

Many thanks for selecting our book!
Sondra Ashmore

Randall Rice said...

Hi Sondra,

Thanks so much for posting your comment as one of the authors. I really do think you have written a fine book. I tried my best to separate my personal doubts about how some people practice agile from the book on its own merits. My hope is that people will read your book and understand the level of consistency and teamwork needed to really get the benefits of agile methods. It's great to have all the methods defined and contrasted in one place. I'll be using your book as my textbook on agile! Thanks again, Randy