Recently, I played a game with a team I was training which I called “Seven Truths of Test Automation”.
I got each “truth” and wrote it on an index card and put it in a (blank) envelope. I got to the training room early and hid them around the room, not very well, so that they were quite easy to find.
We did some other stuff first, and people were looking at all these little envelopes sticking out from behind whiteboards and under cushions, wondering what was going to happen.
Then I told them that we were going to play a game. I told them that there are seven truths of test automation, and they were about to discover them. I split them into 6 small groups. I then told them they would each go out and discover a truth. When they found it, they had to ask themselves the following questions:
- Do we agree with this?
- What are the implications of acting on this truth?
- What are we going to do now?
I wrote those questions on a flip-chart. We then played the game out as a group on a single truth to make sure everyone got it. I made sure that we had a full and frank discussion about whether we agreed with the truth or not. We thought through the implications (good and bad) and listed them out. We then talked about some concrete steps we could take. When they offered vague intents “We’ll start getting better at reducing duplication” I urged them to say exactly what they were going to do next week to get better at reducing duplication.
Then they split off and each did their own. They wrote up a poster and we did a gallery at the end of the session where they had a chance to share their learning with the group.
It worked really well, generated great energy and used up a good couple of hours.
For the record, I think the truths I used with this group were:
- test automation is software development (this is the one I picked to do with the whole group)*
- duplication destroys maintainability*
- incidental details destroy maintainability*
- know when it’s OK to cheat
- some things just aren’t worth testing
- work with developers to make their systems testable
- don’t test other people’s code
It felt a bit egotistical handing them down My Seven Truths, so I made the point that they were just my truths, and they would discover their own as they learned to become better testers. You could obviously vary the truths depending on what you think the that group needs to hear / discuss, and those truths could be about anything, not just test automation.
- Thanks to Dale Emery for these: http://dhemery.com/pdf/writing_maintainable_automated_acceptance_tests.pdf
Sounds fun 🙂 Did you get any total disagreement with any of the truths?
Also, when you’re going in to a team you don’t know, do you worry about whether they’ll get into the spirit of things with the game and have fun? Did they?
Hey Dan,
The truth “Some things just aren’t worth testing” threw up some very different options of what people thought was worth testing. That discussion was really useful for them to start to get some consensus about where to draw the line.
I never worry about whether people want to have fun – everyone does, really!