I have been a fan of Mike Cohn and his latest book Succeeding with Agile: Software Development Using Scrum is another great book. He blends a good mix of theoretical and practical techniques drawn from his past experiences. This book doesn’t show you how the Scrum Framework works, but it is more of a cookbook of good practices and suggestions that you can help you succeed with Scrum. So if you are new to Scrum or looking for an introduction to Scrum I suggest you read some other sources first such as the Scrum Guide (by Schwaber and Sutherland) or the Scrum Primer (by Deemer, Benefield, Larman and Vodde) and then coming back to this book for tips and advice as you implement Scrum.
I was able to relate to some of Mike’s observations with my own experience and found myself nodding my head in agreement to some of his sections on ‘objections’ and various stories throughout the book. As a result, the book felt very personable as I felt like I have been there done that. He does offer some practical advice when dealing with the various ‘objections’ that you may encounter along the way. He also points out the challenges in adopting and transitioning to agile. The following is an important quote from the book:
I’ve personally witnessed several failed agile adoptions that could have been prevented. The first was in a company that had spent more than a million dollars on its transition effort. Executives brought in outside trainers and coaches and hired five people into an “Agile Office” to which new Scrum teams could turn for advice. The company’s failure was the result of thinking that the implications of adopting Scrum would be restricted to only the development organization. The executives who initiated this transition thought that educating and supporting developers would be sufficient. They failed to consider how Scrum would touch the work of salespeople, the marketing group, and even the finance department. Without changes to these areas, organizational gravity pulled the company back where it had started.
A common theme throughout the book is that there is no ‘standard’ way of doing agile and that it must be adapted to the organizational context and project. He devotes a whole chapter, ‘ADAPTing to Scrum’ [Chapter 2] to this topic.
Although it is mainly centered on Scrum, Mike describes various other techniques and methods to produce a handbook that is thorough and complete for any Agile practitioner. Scattered throughout the book are real-world case studies drawn from the Mike’s experience helping many software organizations adopt Scrum, and ‘things to try now’ sections based on his advice offer practical, quick ways of coming up to speed fast. I really liked the chapters on New Roles [Chapter 7] and Changed Roles [Chapter 8] where he describes the 3 key Scrum roles but also identifies how the traditional roles changes to fit into an agile development framework.
I highly recommend reading this book as part of your Agile training, whether you are implementing Scrum for the first time or an experienced practitioner. It is an easy and good read.
Agile methods have transformed the way we do testing and the role of the tester. Testing up front is a big mind-shift change for testers and management. Agile Testing: A Practical Guide for Testers and Agile Teams provides a good coverage of the issues testers face when they move from waterfall to agile from tools and metrics to mind-set, automation, roles and processes.
Littered throughout the book are “Lisa’s Story” and “Janet’s Story” – small snippets of real life Agile Testing war stories experienced by the authors which give you insight into ways testing was approached in relation to an agile project. There is a good mixture of high level concepts and guidance and lower level details.
The book identifies 7 Key Success Factors for successful agile testing (in order of importance):
- Use the Whole-Team Approach
- Adopt an Agile Testing Mind-Set.
(An agile testing attitude is a proactive, creative, open to new ideas, and willing to take on any task.)
- Automate Regression Testing
- Provide and Obtain Feedback
- Build a Foundation of Core Practices
a. Continuous Integration
b. Test Environment
(Available and one you can control)
c. Manage Technical Debt
d. Working Incrementally
e. Coding and Testing Are Part of the One Process
f. Synergy between Practices
- Collaborate with Customers
- Look at the Big Picture
I think testers new to agile will gain a lot by reading Section 5 – An Iteration in the Life of a Tester (Chapters 15-20) where testers can get a feel for what they would be doing throughout the agile development lifecycle. It explains the steps and activities testers do starting with planning releases and iterations to what happens daily throughout an iteration and then ending the iteration by delivering new features and finding ways for the team to improve the process.
Agile Testing : A Practical Guide for Testers and Agile Teams is the most comprehensive book on agile testing that is currently available. Even if you are not a tester, the book contains some useful information for other team members such as developers.
Building quality-in and Quality Assurance is a culture of an agile team and this book will put a tester on the path of the cultural shift for the better.