SPA Conference session: Specification By Example: By Example

One-line description:An experiential workshop for improving the way we specify what we want
Session format: Workshop (75 mins) [read about the different session types]
Abstract:The work of a software development team revolves around turning requirements into working, running software. Writing software is one of the most complex tasks we have and it's only made more difficult by misunderstanding and communication failure around requirements - about what we should build and how the software should work.

Specification by Example is a technique for ensuring that there is a shared understanding of what a given requirement, product backlog item, or a feature entails.

In this workshop the participants will learn about and explore first-hand how to create useful and effective acceptance tests through concrete examples of desired behavior using simple low-tech tools and techniques.
Audience background:Participants are expected to be familiar with other lightweight methods of describing requirements such as user stories or essential use cases.
Benefits of participating:Participants will gain confidence in sketching example-driven specifications along with practical advice on the kind of details and patterns that can steer - or derail - an implementation team as they pick up your specifications and run with them.

Last but not least, the participants will know where to whom to look for further feedback and support after the conference.
Materials provided:Likely none. We're considering distributing (online, after the session) example specifications for the sample scenarios we'll experiment with in-session. The main reason we might not want to do that is that they might be perceived as being "the right answer" and we don't want that.
Process:The session begins with an introduction to the method of specification by example. This is only a brief overview sufficient to prepare the participants for the workshop activities.

After the introduction we will form groups of 3-4 people. Each group will have a pile of blank paper, markers pens and a roll of tape. The remainder of the workshop will consist of a sequence of hands-on group exercises where the groups will sketch specifications for a requirement provided and described by the workshop hosts.

After the sketching activity the groups will pause for a round of analysis and feedback. We will do this by rotating half of each group to another group, mixing it up a bit. Each group will explain their specification to the newcomer(s) who will in turn give feedback and offer insight based on his previous group's work. The group may incorporate this feedback into their specifications at this time.

The workshop hosts may use this opportunity to point out specific things to pay attention to based on what they've seen as they've walked the room while the groups have been busy with the exercise.

After the rotation and feedback the groups will continue with another group exercise. The hosts will provide them with another requirement to play with - from the same domain as the first requirement but of a different nature, designed to push the groups to a different direction with their specifications.

We will start to close the workshop after these two rounds of activity with a whole-group debrief. Each group will attach their specifications on the wall for easy viewing and everybody will take a few minutes to walk the wall and observe the different approaches taken and the differences in detail, structure, visualization, etc.

Once all participants have had the chance to see other groups' work products we'll conclude with an open discussion, prompting the participants to share their thoughts about the technique, share any insights they've had, along with feedback about the workshop itself.
Detailed timetable:00:00 - 00:05 Opening, host introduction, and workshop agenda
00:05 - 00:15 Introduction to the method we call "specification by example"
00:15 - 00:35 Group work: Requirement A
00:35 - 00:45 Group rotation and feedback
00:45 - 01:00 Group work: Requirement B
01:00 - 01:15 Whole group debrief
Outputs:We might do several things:
1) Scan the group exercise work products and post them online.
2) Hang the specifications on the corridor.
History:Longer versions of this workshop (at 2-3 hours) have been run for our clients and a similar length version has been run without the rotation as part of a five-day training curriculum for a small software team.
1. Lasse Koskela
2. 3.