What is the fundamental value of the vertical sliced approach in software development?
First, a brief introduction to vertical slices. A vertical slice is a thin slice — relatively speaking, of course — that cuts across the entire stack of modules in a software system and captures a specific end user interest. For example, in the Netflix cloud architecture chosen below, a vertical slice could be something like "Netflix subscriber wishes to pick a comedy movie, starring Steve Carrell of Office fame, for immediate watching."
Let us look at any end user interaction from the user's experience. Whenever a end user interacts with a system, the end user expects a smooth, near instantaneous, response. That means that the flow of software control through the various layers of software needs to be such that the aggregate behavior, as seen by the end user, is very pleasant.
In general, we have many such end user scenarios in a system; additionally, each end user role would enable definition of different vertical slices. There is another kind of user who'd be interested in a high quality macro behavior; that'd be the administrator. The administrator of a Facebook or a Gmail or an Outlook 365 or a Netflix, for example, would be interested in serving as many subscribers of the service as possible in 100s of millions, if not already in billions, simultaneously.
The diagram below illustrates some representative vertical slices defined through various architectural layers of a system. I have chosen a publicly available architecture, of Netflix' cloud architecture and have illustrated some representative vertical slices through the architecture. We note that Netflix subscribers must feel that the Netflix endpoints — say a Roku player — provides them a very smooth interaction through a variety of functionality — administrative, movie watching, etc.
- A good illustration of the cake metaphor is in this article: Horizontal and Vertical User Stories: Slicing the Cake.
- A more technical article is the one by Peter Green: Using Vertical Slicing and Estimation to make Business Decisions at Adobe.
- On some pitfalls in crafting user stories. Vertical Slicing in Agile Development