A while ago I asked the teams in my department which parts of agile software development they wanted to learn more about. One of the topics that stood out, was: you have a high-level description of a new feature, then what? That’s still quite a wide topic, so the question become on what part of that problem would I focus first.
Quite quickly I settled on feature slicing - for several reasons. First of all, I had noticed teams delivering somewhat big chunks of functionality, split up into development tasks instead of vertical slices. Secondly, a team I had worked with on feature slicing, had gained some valuable planning flexibility because of it. And they continued the practice, breaking up projects vertically. Finally, I was aware that there was a workshop called “Elephant Carpaccio”, focused on feature slicing. So I could use that, or build on it, but at least I wouldn’t have to come up with something from scratch.
The Elephant Carpaccio exercise
The Elephant Carpaccio exercise was invented by Alistair Cockburn1. Its purpose is to get people to practice “nano-incremental” development, i.e. slicing something small enough you can program it in 15-30 minutes. The exercise tries to bring home its point through exageration: you are asked to slice a very simple application in 15-20 slices, where you would normally do it in 2-3 slices. Then you get five iterations of 8 minutes to build those slices. To me that’s the coolest part of the exercise: you actually get to experience what’s it like to work with such small slices. As Alistair Cockburn himself says about the exercise: “the true learning is the actual programming section”.