Vertical slice
Encyclopedia
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; there is even a game usability lab called Vertical Slice based in the UK.
The term 'vertical slice' refers to 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.
Milestone (Project management)
Within the framework of project management, a milestone is the end of a stage that marks the completion of a work package or phase, typically marked by a high level event such as completion, endorsement or signing of a deliverable, document or a high level review meeting.In addition to signaling...
, benchmark
Benchmarking
Benchmarking is the process of comparing one's business processes and performance metrics to industry bests and/or best practices from other industries. Dimensions typically measured are quality, time and cost...
, or deadline
Time limit
A time limit or deadline is a narrow field of time, or particular point in time, by which an objective or task must be accomplished.In project management, deadlines are most often associated with milestone goals....
, with emphasis on demonstrating progress across all components of a project
Project
A project in business and science is typically defined as a collaborative enterprise, frequently involving research or design, that is carefully planned to achieve a particular aim. Projects can be further defined as temporary rather than permanent social systems that are constituted by teams...
. It could be considered a project management
Project management
Project management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...
buzzword
Buzzword
A buzzword is a term of art, salesmanship, politics, or technical jargon that is used in the media and wider society outside of its originally narrow technical context....
, and may have originated in the games industry; there is even a game usability lab called Vertical Slice based in the UK.
The term 'vertical slice' refers to layers that form the structure of the software code base. It is mostly used in Scrum
Scrum (development)
Scrum is an iterative, incremental framework for project management often seen in agile software development, a type of software engineering....
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
Data access layer
A data access layer 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....
(bottom), Business logic layer
Business logic layer
A business logic layer , also known as the domain layer, is a software engineering practice of compartmentalizing. The business logic layer is usually one of the tiers in a multitier architecture. It separates the business logic from other modules, such as the data access layer and user interface...
(middle) and User interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
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:
- Work in the UI that will display the information
- Work in the business 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 doesn't require a change in the UI, but the business and database access layers.