I had the good fortune to be in Salt Lake City last Friday and attend the last 1.5 hours of the Salt Lake City Agile Round Table. Participants included Alistair Cockburn, Kay Johansen, Zhon Johansen, Jeff Patton, Jonathan House, Sean Landis, John Major and other smart people (sorry, I am bad with names!) I got lots of “ahas” and food for thought. You can see Sean Landis’ notes for some of the interesting discussion on traps & pitfalls of agile. (Their mailing list is sl-agile in Yahoogroups).
One topic discussed was that given that we all agree that agile adoption isn’t process change, it’s culture change, why do we teach process rather than culture and values? I think the reason (and most participants said this) is that teaching process is a lot easier than trying to teach values. We’re used to learning in a straightforward “how to” way – follow these steps and you will succeed. But that doesn’t work, because everyone has a unique situation.
What values do you need to succeed as an agile tester, or with testing on an agile team? In our book, we identify 7 key success factors for agile testing. Are these values or process? I think they are values:
- Use the whole-team approach. The whole development team must commit to producing high-quality software that delivers maximum business value.
- Adopt an agile testing mind-set. We have a chapter in the book with “Ten Principles for Agile Testers”, and explain that an agile testing attitude is proactive, creative, open to new ideas, and willing to take on any task.
- Automate regression testing. Without automated regression tests, the team will fail in the long run, because there won’t be time to do adequate exploratory testing, much less to do all the manual regression tests as the product grows. This is really a practice, but its root is in the value of feedback.
- And feedback is our next success factor: Provide and Obtain Feedback. Feedback is a core agile value, and testers are in a prime position to help provide the feedback that keeps the team on course.
- Build a foundation of core practices. Again, these are practices such as continuous integration and working incrementally, but they are rooted in core agile values such as simplicity, communication and feedback.
- Collaborate with customers – another core agile value.
- Look at the big picture – another strength of testers. Even code produced test-first may cause unintended results in other parts of the system. Testers help the team evaluate how each story fits into the larger system.
I’m happy that our book focuses a lot on cultural issues, agile values and principles and how they relate to testing on agile teams. As I worked over the weekend on my presentations for TISQA, I found that I also tend to teach process rather than values. I updated my presentations to make sure I am explaining values, principles and the importance of letting those guide you, rather than try to provide a cookbook approach that probably won’t work for everyone.
Do you agree that the success factors are values, or am I deluding myself?