The most fundamental difference between Waterfall and Agile is that rather than waiting until the very end of a very long project to deliver value to the end user, Agile delivers small, shippable increments of value from the very start that can be learned from quickly and improved.
Yet, there is no instructions manual on how to identify a valuable shippable increment to develop in each sprint. That’s a skill that is learned and refined over time. But there is a place to start. If you know me, and have worked with me you most definitely have heard me refer to the “vertical slice of cake.”
In Waterfall (and even much of what passes for Agile), a product is built one layer at a time, and even one project phase at a time. First the architectural decisions are made for the entire project/product, and all of that foundational work wired up. That would be like making a traditional cake with one entire layer at a time. But you’ll never really be able to taste what a slice of cake will end up tasting like until you’ve baked every single one of those layers.
In Agile, we believe that creating products as a traditional cake is a bad idea. In fact, even organizing projects as traditional cakes is a bad idea. Whenever I see a diagram that lists Discovery, Planning, Design, Engineering, Testing, and Deployment, something dies inside me.
At which point do you know most?
- Before you plan
- QA Testing
- After the product or feature is live
The answer is always after the feature is live. This applies for everything and anything. A test run, a dress rehearsal, the repetition of a speech; these are all things that are done based on the belief that you have to start doing it before you can master it. In terms of products, this means you need to get something out into the wild first before you elaborate on it.
Getting a vertical slice of cake out fast allows you taste it and your end users to taste it, before you commit to baking the entire cake. It gives you the opportunity to adapt or even change course completely if needed. And this is all because of the belief that it’s not possible to know enough at the start of anything. Sometimes it just boils down to humility.
Ok, so I’ve beaten the point to death now. I’m going to assume you believe that the best way to develop a product or run a project is to do it one vertical cake slice at a time. But how do you do that?
This hard work is the responsibility of the Product Owner. Product Managers can have the greatest ideas, know their users well and know their competitors. But if they can’t consistently create slices of cake, they will have a very hard time realizing their goals.
In Scrum, the Product Owner creates this vertical slice of cake through User Stories. They are taking their large hypothesis or bets, and deducing them into much smaller bets — then attempting to first build those out and ship them. This may sound a lot like an MVP (Most Viable Product) or even a prototype. But while the Vertical Slice shares many of the same qualities as the MVP and Prototype, it’s different because the Vertical Slice is in a state of iteration, whereas the MVP and Prototype concepts are static. In Vertical Slicing, you are in a constant state of creating these small valuable increments. When you finish one, you either immediately iterate on it, or create another one. Vertical Slicing is an ongoing action.