Misplaced Pages

Vertical slice

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Type of milestone, benchmark, or deadline in project management
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
This article is written like a personal reflection, personal essay, or argumentative essay that states a Misplaced Pages editor's personal feelings or presents an original argument about a topic. Please help improve it by rewriting it in an encyclopedic style. (January 2014) (Learn how and when to remove this message)
This article contains instructions, advice, or how-to content. Please help rewrite the content so that it is more encyclopedic or move it to Wikiversity, Wikibooks, or Wikivoyage. (January 2014)
This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (January 2023) (Learn how and when to remove this message)
(Learn how and when to remove this message)
A vertical slice from the components of a project

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.

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):

  1. Data access layer (bottom)
  2. Business logic layer (middle)
  3. 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.

Vertical user stories

A vertical user story encapsulates the action of one function.

An example of a vertical user story is, "As an end user I must be able to log into my company portal so that I can perform the functions of my job."

Acceptance criteria

Acceptance criteria are conditions of satisfaction. This story is "done" when the detailed functionalities are completed.

For example:

  • Verify that I can log into the system
  • Verify that my login credentials will be remembered
  • Verify that I can reset my own password by clicking the "Forgot Password" link
  • Verify that I cannot navigate back to the landing page without first logging in

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.

Sources

Category: