A scrum team often faces challenges in adopting the Agile methodology for software development. One such challenge in Agile adoption is the concept of vertical slicing.
In Agile software development, vertical slicing is an approach to breaking down user stories into smaller, better understandable, and independently deliverable increments. Wikipedia states vertical slicing as a term that refers to a cross-sectional slice through the layers that form a vertical code base.
Vertical slicing involves implementing a slice of functionality across all layers of the application rather than completing each layer sequentially. Each slice represents end-to-end functionality that provides value to the users. For instance, a vertical slice would include:
We can consider the following example to illustrate vertical slicing:
User Story: As a user, I would like to search for different products on an e-commerce website.
Recommended by LinkedIn
Instead of implementing the search functionality layer by layer (e.g., UI, backend, database), vertical slicing involves delivering a thin slice of the search feature across all layers. In this case, the team might start by implementing a basic search UI with a search box and a button. The UI would send the search query to the backend, which would then retrieve and return a set of search results from the database. The results would be displayed back to the user in the UI.
Once this initial slice is finished, the team can then build open in different sprints. The team can provide pagination, filters, or simple sorting options to enhance the search UI. They can also optimize the search algorithm to improve performance. Thus, with each iteration, the search feature would provide increasing values to the end users.
Some of the advantages of vertical slicing can be:
However, some scrum teams might find it difficult to split their user stories small enough while trying to achieve a vertical slice. This could lead the scrum team to create user stories that are horizontally sliced. Such stories are in fact tasks. The horizontal stories generally do not meet the user story structure that is the Persona, Need, and Purpose. "As a (Persona), I want to (need), so that I can (purpose)." Moreover, the horizontal stories also do not meet the INVEST criteria.
Adopting the vertical slicing approach to split large user stories into smaller ones can be beneficial to every scrum team and in turn, would help in improving the scrum workflow. Smaller user stories are not only comprehensible and easier to estimate but are also less risky for a scrum team to plan.