Example Mapping is a team based technique for capturing feature requirements invented by Matt Wynne. It's simple to use and as an agile software engineering team we've found it fantastic for:
In the past we used to let a lone developer go away and think about a feature, such as "User can add tickets to their cart". First, they would write Given-When-Then statements capturing the details of the feature. After this a whole-team meeting would happen and all the attendees would be faced with this wall of text. It was often impenetrable, hard to reason about and hard to edit. A lot of time was wasted making sure our acceptance criteria fitted into the predefined grammar. People would zone out and let it wash over them. Something had to change.
Example Mapping unconstrained us from the strict grammar, made the feature easy to read, and helped everyone get on board from the get-go.
An Example Mapping session for us starts with a blank slate and one person leading the session. Of course people are free to think about the feature before hand, but it's important to have that blank slate. This means all team members are along for the whole journey. First we'll come up with an obvious Rule, such as "user can add a ticket to their cart". After this we'll come up with Examples that support this, and importantly some that don't. For instance, what happens if the number of tickets available has reduced since page load? This might drive out a second Rule that a ticket inventory check is needed before the cart is updated. We continue until everyone is out of Rules. Usually Rules are blue stickies, with Examples being green.
Often a Question will crop up. We'll either be able to answer it on the spot, or we'll defer it until later. In either case we capture it using a red sticky. Questions help clarify things that may be otherwise unclear.
We also capture some metadata including a group estimate of effort, whether we'll need to produce documentation etc.
It's possible to tell from looking at the table what the balance of Rules to Examples to Questions is. For instance lots of Questions - are we ready to start this yet? Lots of Rules - do we need to split this? Lots of Examples - we need to look at those Rules again.
In our team usually the whole team attends. That means multiple developers, testers, a scrum master and a product owner. It's important for everyone to contribute, understand and buy in to the feature. We run an Example Mapping session for all non-trivial features.
Okay that's great, but our team is also distributed, so how does that work?
Using stickies doesn't work well when half of you are in another country, and someone else is working at home. What we did for quite a while is use Google Sheets to capture the session in a video conference. For this we created a template with the elements laid out and appropriately coloured. This worked pretty well but there were two sticking points. Firstly, people would often lose track of the template, with accompanying requests for "has anyone got a copy?". Sometimes people would think they'd copied an existing Sheet and overwrite the old one. Secondly, it was a pain to export the data from the Sheet to where it needed to go. This was usually achieved by selecting all the cells, copying them, then spending ages re-formatting the pasted text.
We reasoned that a dedicated tool would answer these problems and provide other improvements.
TeamUp Labs has built a dedicated tool for Example Mapping and it is free to use. Phase one for us meant it should work better than Google Sheets, but there are now many other features with more to come. Users are able to save all their Example Maps and there is a very quick export feature. With two clicks the whole session is formatted as Markdown and placed in your clipboard. This includes Rules, Examples, Questions and Definition of Done. All you have to do then is paste it where you need it.
To get started and try Example Mapping click the button below. It's free to use and easy to get started using your Google account.
If this tool is helpful, please help by sharing!