Monday, May 16, 2016

On the Qualitative Importance of Vertical Slicing in Agile Project Executions.

Vertical slicing is quite frequently talked about in agile communities. There are good illustrations of this approach using the cake metaphor.

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.



Since, after all, end user interaction in real usage is always along a (thin) vertical slice through the respective endpoint, it makes sense to consider these vertical slices even during development. The vertical slices represent the manner in which the end user would use the system anyway. This is the fundamental reason why vertical slicing of user stories is important.

Further reading:

  1. A good illustration of the cake metaphor is in this article: Horizontal and Vertical User Stories: Slicing the Cake.
  2. A more technical article is the one by Peter Green: Using Vertical Slicing and Estimation to make Business Decisions at Adobe.
  3. On some pitfalls in crafting user stories. Vertical Slicing in Agile Development

4 comments:

  1. Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledge.

    ccna training in chennai velachery

    ReplyDelete
  2. CloudEndure provides DR from any machine to, within and across clouds, using continuous replication, application stack orchestration, and automated machine conversion of your entire application stack.

    disaster recovery in cloud

    ReplyDelete
  3. I really like this interesting and knowledgeable blog. You really did a great job.
    microsoft cloud solution
    software as a service saas

    ReplyDelete
  4. You made some decent factors there. I looked on the internet for the difficulty and found most individuals will associate with along with your website.Keep update more excellent posts.

    Cloud Computing Training in Chennai

    ReplyDelete