A few years ago, my superior at my job at that time asked me to try to note down what I had in mind about testing, and how to approach test automation. He also convinced me to try out the commonly in use form of patterns. Inspired by those Design Patterns, Fearless Change Patterns, Apprenticeship Patterns, xUnit Test Patterns, I sat down and started to write patterns on function test automation, and the thing we used to call ATDD…
… and I miserably failed to do so. The more I was heavily ambitious about a call for a workshop of 12 people in the London at Oct 1st 2010 in order to discuss what Linda Rising called an architecture for a pattern language.
Linda Rising, Elisabeth Hendrickson, Jennitta Andrea, Liz Keough, Gojko Adzic, Steve Freeman, Chris Matts, Laurent Bossavit, Antony Marcano, David Evans, Jez Humble, Mario Cardinal, Joseph Wilk as well as myself got together, to discuss what we think ATDD, BDD, Specification Workshops, Specification by Example, and the other terms floating around is all about. Before that Linda gave an introduction into patterns in general, into pattern workshops, how a pattern is created, and evolves over time.
Besides myself wanting to recap from my earlier failures, I felt good at that workshop. We sat down after having created the initial architecture, and started to write for 40 minutes straight a pattern of our choice from that architecture. Some of the participants decided to pair write, some decided to write on their own, some had already prepared something, some started from a blank piece of paper. After those 40 minutes, we split up in two groups, and workshopped the patterns we got in two distinct groups.
What I found amazing was the way these writer’s workshop work. First, the pattern writer is welcomed, and she reads a brief abstract or paragraph, which she considers most meaningful. Then the pattern writer becomes a fly on the wall, which is allowed to listen, but not to speak up. Even others will no longer refer to her by name, or look her in the eye. Then the others in the group start to summarize what they understood from the pattern. They take turns to add what they understood is the essence of the pattern. Second, the group discusses what they explicitly like about the pattern in its current shape or form. The author is allowed to take notes, of course, as this honest form of feedback helps to see what is great in the writing, and what to keep explicitly. After that the group will start to make suggestions – constructive suggestions – what could be improved. At this point the facilitator may have a hard time reminding people that it’s crucial to suggest something that would make the pattern even better than before. This should not degenerate into a blaming session, where the author may not speak up.
The round finishes with a positive summary, before welcoming the author back to the round. The author then is expected to thank everyone for their honest input. She may ask clarifying questions about what was said, but not defeat her position. The author finally sits down, while all the others stand up, giving the author standing ovations. Then everyone finds a new seat, someone tells a joke, and the next pattern is workshopped.
Personally, having attended two of these workshop sessions so far, I felt the feedback very honest, very positively focused, providing me as an author the energy to continue improving my pattern. This makes me put in more energy into this, hoping to deliver finally some useful patterns for all those functional test automators out there. It was a great experience to be there at the very first pattern writing workshop, and I thank the AA-FTT group, Jennitta, Gojko, and Elisabeth Hendrickson especially, for inviting me to the first workshop, hoping to do some workshops on my own in the near future.