
A vertical slice (VS) is a type of milestone, benchmark, or deadline, with emphasis on demonstrating progress across all components of a project. It may have originated in the video game industry.
Overview
The term vertical slice refers to a cross-sectional slice through the layers that form the structure of the software code base. It is mostly used in Scrum terminology where the work is planned in terms of features (or stories). For example, as a very basic approach, a software project may consist of three layers (or components):
- Data access layer (bottom)
- Business logic layer (middle)
- User interface layer (top)
In this common approach, a vertical slice means a bit of every layer. Again as an example, a new feature request like "showing x information on main screen" would contain these work bits:
- Work in the UX/UI that will display the information
- Work in the service layer to transform the information
- Work in the database layer to store / fetch the information.
So a vertical slice can be defined as "the sum of the work that has to be done in every layer that is involved in getting a specific feature working." A vertical slice doesn't necessarily affect every component in the software. For example, if the solution contains a web service, it would live in the same "floor" as the UI, and a feature like "supporting login/logout in webservice" that involves only the web service does not require a change in the UI, but the business and database access layers.
References
References
- Vertical Slicing Training Deck by Ben Clay (Enterprise Scaled Scrum 2009)
- Built to Thrive by Jay van Zyl
- Horizontal and Vertical User Stories - Slicing the Cake by Ned Kremic
- INVEST IN GOOD STORIES, AND SMART TASKS by Bill Wake
- 6 Brilliant Ways to Slice User Stories by Dominic Krimmer
- User Stories 2.0 by Jeff Sutherland