Half Baked Idea #1 - Slicing work
Lessons in agility from the Great British Bake Off
Inspired by a vertical-layered cake challenge in the first episode of 2023’s Great British Bake Off, the Half Baked Idea series takes themes from the show and how we can apply them to the world of agile software development.
In this blog, let’s explore the idea of a system as a multi-layer cake, introduced by Bill Wake in 2003:
“Think of a whole system as a multi-layer cake, for example, a network layer, a persistence layer, a logic layer, and a presentation layer.
When we split a story, we're serving up only part of that cake. We want to give the customer the essence of the whole cake, and the best way is to slice the cake vertically through the layers.
Developers often have an inclination to work on only one layer at a time (and get it 'right'), but a full database layer (for example) has little value to the customer if there is no presentation layer.”
Delivering Value
In cake terms:
Horizontal Slicing: You can prepare the ingredients for the whole cake separately, like mixing the batter, making the frosting, baking the sponge layers. But on their own these constituent parts have no value to the customer. You won't know if the cake meets the customer's expectations until it's fully assembled. There’s likely to be more waste and a longer lead time. You could spend weeks developing a vanilla sponge recipe, only to realise that they'd actually have preferred a chocolate cheesecake instead.
Vertical Slicing: You could make one thin slice at a time…perhaps a cupcake! This way, you can see how the ingredients fit together, get feedback quickly, and adjust your recipe as needed if the customer decides they’d prefer more lemon and less vanilla.
In software terms:
Horizontal Slicing: You might build one part of feature completely, like the user interface (UI), and then move on to another, like the database or backend logic. This can lead to longer development cycles before you see a fully working part of the application.
Vertical Slicing: You work on a small part of each layer simultaneously. For example, you create a simple user interface, connect it to a basic backend, and set up the necessary database tables. This way, you have a simple but functional "slice" of the application early on, and you can gradually refine and expand it.
Benefits
Vertical slicing has several benefits which can help to maximise flow and value, including:
Faster Feedback: It allows you to get feedback from users or stakeholders sooner because they can see and test a complete feature rather than waiting for individual parts to be developed separately.
Reduced Risk: By delivering a full slice of functionality, you can identify and address issues and problems earlier in the development process, reducing the risk of major problems later on.
Better Collaboration: It encourages collaboration among team members because everyone is working on the same feature at the same time, promoting a shared understanding of the feature's requirements and goals.
Improved User Experience: Users can experience the new feature more cohesively, making it easier to understand and use, which can lead to higher user satisfaction.
Flexibility: It allows for changes and adjustments to be made more easily since all related components are developed together. This is especially useful when requirements evolve during development.
In summary, vertical slicing is one way that can help deliver end user value sooner.




Beautiful explanation of horizontal and vertical slicing 👏