Slicing is an important step in software development process and it’s including slicing big activities to smaller, manageable tasks. There are usually two fundamentally different ways of slicing work, horizontal and vertical slicing.
To explain this it’s easier to imagine a cake. A cake have different layers and when you slice horizontal you slicing where the layers are. Layers like Database, Server and Client are normal in software development. When using this method the focus is more on different technical boundaries and aspect. Slicing horizontal is a typical “Waterfall” method which mean that is hard to deliver early value to customers and stakeholders. When the database task is delivered it is often still unusable and doesn’t have a value for the customer or the stakeholders.
A modern and agile way to slice work is using the vertical approach. If we use the same example “the cake” this means that we are trying to find bite-sized pieces instead. When you serving cake to your guest you don’t first serve the bottom layer to your guest. You slice it vertical.
This approached is hard and demands more upfront design and work “not waterfall upfront” but you need to think in a different way. But if you succeed you are getting smaller and more manageable bite-sized work and are able to deliver value to the customers early in the process.
Different ways of vertical slice.
There are many different ways you can slice the cake. Here are some examples.
- Split in operations: Split bigger features in operations/actions the user can do.
- Split by roles: Often a feature involve many different roles and user groups. Find the user groups and split from that perspective.
- Acceptance criteria: Create acceptance criteria before the teams start to develop and try to slice it that way.
- Business value: Try to find the smallest part that have a value (MVP) and slice it that way.
- Slice by test case: Create test cases and slice a bigger feature to smaller task using test cases as a foundation. Then you also get testable code.
- Slice by workflow: Find most common workflows in the system and slice it so the team can deliver a whole workflow.
- Slice major task first: Do you need to focus on important task first? Why don’t slice feature focusing on critical task that needs to be done.
Elephant + Carpaccio is a great exercise in how to slice vertical.
- Horizontal and vertical user stories slicing the cake
- Brilliant ways to slice user stories
- 8 useful strategies for splitting large user stories and a cheatsheet
- Invest in good stories and smart tasks