On September 29th, we gathered for an Elephant Carpaccio at Leannovate GmbH (thanks again for hosting, drinks and candy!).
Elephant Carpaccio is an exercise, where you build a retail calculator that takes 3 inputs (how many items, price per item, country code for VAT) and outputs a total order value. Instead of implementing this in one chunk, the goal is to practice slicing a task into as small as possible vertical stories, that go through all layers of a system and deliver value.
The first question this task lead to was: What is a story?
We could agree on the definition "a task is something that delivers business value", which lead to the second question: What is business value?
Fortunately, we had a Product Owner participating, who explained it as follows:
"User stories are something that have a business value, but nobody can explain what that is. These days it can be measured, but usually, if you ask your PO to explain it, they try for a while and then say 'You know what I mean!'".
At last everyone agreed, that typically 80% of the work can be broken down into a story, the rest is called a task.
In the first round of story slicing (laptops still closed), the best teams got to around 5 slices for the task. Together with some help from the guide, we split things like "adding VAT for country code DE" into "adding fixed 19% value tax", "adding value tax as a parameter", "adding value tax mapping for DE". At the end of the planning, some teams had 13 stories for the retail calculator!
During the coding there was a twist to usual exercises: Every 8 minutes, pairs had to demo their application to another pair, demonstrating the value they added since last time. This was pretty difficult, but also a great motivation to have something that actually works at the end of an iteration.
After about half an hour, most teams had finished the basic VAT functionality, but not the additional features, like discount. This picture gives an idea of how far on the value curve they had come: Value curve. Interestingly, none of the developers thought, implementing the program in one big try would have been faster than implementing it in small Carpaccio.
Quite horrifyingly, most teams rated their code quality with 1-2 on a scale of 5, and only 1 team wrote any tests at all. So next time we will probably do a session on testing :-)