Vertical slice

A vertical slice from the components of a project.

A vertical slice, sometimes abbreviated to VS, is a type of milestone, benchmark, or deadline, with emphasis on demonstrating progress across all components of a project . It could be considered a project management buzzword, and may have originated in the games industry.

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) and User interface Layer (top). In this very 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:

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 doesn't require a change in the UI, but the business and database access layers.

Visualizing the layers of a vertical slice.
Begin to show how vertical slicing works
UX/UI for Vertical Login User Story

Vertical User Stories

Practically speaking when writing user stories and/or breaking down epics into user stories you must take into consideration the developers time. If your user story isn't a vertical user story the developer may not be able to complete the story in the committed to timeframe. Either way it makes everyone's life a lot easier to work from vertical user stories. The reason I write here about vertical user stories is because that is where it starts. The Product Owner and/or Business Analyst (BA) must write vertical user stories so that the team can develop and test vertical slices.

Writing Vertical User Stories

Below is an example of a vertical user story. Notice the one action in the user story. Though you will develop many elements in this user story such as forgot password, remember me and the like, the main focus is that the end user must be able to log into the web portal in order to perform the functions of the end users job. Also, keep in mind that though the vertical user story may seem simple it in fact might not be. In this case the wireframe, UX/UI, vertical user story and acceptance criteria enables this vertical user story to be completed with a certain level of high confidence by the team.

As an end user I must be able to login to my company portal so that I can perform the functions of my job.

Acceptance Criteria

Dissected by Layer

As a developer, you will need to think about every file encapsulated in each layer that needs to be created and/or extended in order to complete this “Login User” Story.

References