Vertical slice refers to a type of milestone, benchmark, or deadline that emphasizes demonstration of progress across all elements of a project.
Many developers have the practice of splitting their tasks into layers. This approach makes a lot of sense when we are coding a new software feature. However, in the project plan perspective, we can split our backlog into software layers. In this instance, the outcomes of the backlog items won’t deliver any working software to the end user. Consequently, their problems will remain until all the layers are done.
Agile frameworks such as Scrum aim to deliver the highest value piece of working software to the end user. We can deliver the whole database structure with the best possible design by the end of each interaction/sprint. However, this will be useless to the end user unless we provide a user-friendly way to handle the data.
The most common way to write a software requirement in the Agile world is through User Stories. So let’s see a good and a bad example of how to split these items to deliver real value:
- (BAD): As a developer, I want to define the whole structure of our database so that I can start coding new features.
- (GOOD): As a Student, I want to be able to check my attendance online by myself, so that I don’t need always to ask my teacher to do this for me.
The examples above are deliberately simple to demonstrate this concept. Look at the following image to keep it clear:
Applying the vertical slice to your backlog is something that takes time and practice. When teams start doing this, they might have some items that are too big to be attacked in one sprint. For example, and the art of splitting those big value items to smaller ones that are still valuable to the user is the exciting part. Once the team is managing this technique with mastery, good outcomes start to appear. The results are faster, generating better inputs from the Product Owners to prioritize the items on the backlog more precisely.