![Vertical slice](https://upload.wikimedia.org/wikipedia/commons/d/d3/Vertical_slice.png)
A vertical slice, sometimes abbreviated to VS, is a type of
milestone
A milestone is a numbered marker placed on a route such as a road, railway line, canal or boundary. They can indicate the distance to towns, cities, and other places or landmarks; or they can give their position on the route relative to so ...
,
benchmark
Benchmark may refer to:
Business and economics
* Benchmarking, evaluating performance within organizations
* Benchmark price
* Benchmark (crude oil), oil-specific practices
Science and technology
* Benchmark (surveying), a point of known elevati ...
, or
deadline
Deadline(s) or The Deadline(s) may refer to:
* Time limit, a narrow field of time by which an objective must be accomplished
Arts, entertainment, and media Comics
* Deadline (DC Comics), a fictional villain
* ''Deadline'' (magazine), a British ...
, with emphasis on demonstrating progress across all components of a
project
A project is any undertaking, carried out individually or collaboratively and possibly involving research or design, that is carefully planned to achieve a particular goal.
An alternative view sees a project managerially as a sequence of even ...
. It may have originated in the
video game industry
The video game industry encompasses the development, marketing, and monetization of video games. The industry encompasses dozens of job disciplines and thousands of jobs worldwide.
The video game industry has grown from niches to mainstream. , ...
.
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
Scrum may refer to:
Sport
* Scrum (rugby), a method of restarting play in rugby union and rugby league
** Scrum (rugby union), scrum in rugby union
* Scrum, an offensive melee formation in Japanese game Bo-taoshi
Media and popular culture
* M ...
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 A data access layer (DAL) in computer software is a layer of a computer program which provides simplified access to data stored in persistent storage of some kind, such as an entity-relational database. This acronym is prevalently used in Microsof ...
(bottom)
#
Business logic layer In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might ...
(middle)
#
User interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
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
In software development and product management, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an end user or user of a system, and may be recorded on index ...
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.
; 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
{{Reflist
Vertical Slicing Training Deck by Ben Clay (Enterprise Scaled Scrum 2009)Built to Thrive by Jay van ZylHorizontal and Vertical User Stories - Slicing the Cake by Ned KremicINVEST IN GOOD STORIES, AND SMART TASKS by Bill Wake6 Brilliant Ways to Slice User Stories by Dominic KrimmerUser Stories 2.0 by Jeff Sutherland
Project management techniques