Stop the production line! There is no need to cook slices of cake or build skate boards. The answer is here.
I guess most of the readers have seen the various examples when trying to explain what iterative and incremental development means. Guess what: They are all wrong.
Slicing the cake in vertical slices is wrong. Whi on earth would cook only a fraction of the cake and still go through all the steps?
If your customer want to commute from A to B and you start out building a skate board when they really need a 4-seated car; then you’re doing it wrong.
In both cases you have missed the point of user feedback to get to the real user need. You have gone straight from a one liner and directly into solution mode. Stop doing that.
Imagine the following user stories:
- “As a cake customer I would like a layered cake so that I entertain my guests at my party”
- “As a commuter I would like means of transportation from A to B”
If we follow the cake slicing and skate board metaphores, we will go straight into solution mode and build a slice of layered cake and a skate board to be presented to our users. Guess what: It doesn’t fit their need. The cake is too small and the skate board is too slow.
Start asking questions before accepting vague stories. Document these as acceptance criteria:
- “As a cake customer I would like a layered cake so that I can entertain my guests at my party. I like red berries, chocolate layers and vanilla cream.”
- “As a commuter I would like means of transportation from A to B. I commute 40 km to work each day and have to pick up the kids from school after work.”
Putting a few acceptance criteria on the stories narrows the scope down. How do we proceed from here?
- Start with the absolute minimum development of a potential solution
Make a small batch of cake to build a walking skeleton (yes, the product is the recipe). Draw a wireframe or similiar of a transportation unit that will allow for the commute to happen with ease with room for the kids (in the first steps the aim is to figure out what kind of transportation unit could be used, next will be the actual unit)
- Get feedback on the first iteration
Is this the taste that you like in the cake? Should we add/remove anything? Is this the kind of tranportation unit that would live up to your needs?
- Deploy the solution when accepted or create new stories based on the feedback to the solution and iterate