The success of an Agile transformation stems from three key areas: behaviors driven by an Agile mindset at all levels of an organization, adherence to frameworks, and a relentless pursuit to deliver value to the customer.

One of the more nuanced tactics I use to drive rapid, incremental delivery of value to customers is called vertical slicing.

Think of a development project like a tiramisu. Each vertical slice of tiramisu contains many decadent layers of flavors and varying textures. Each portion is delicious because the combination of layers is better than eating one layer at a time. To do so would reduce the value of the culinary experience.

Similarly, a large item on your product backlog can be sliced up into smaller pieces either horizontally (that is, so the work only relates to a single architectural layer) or vertically (so the work spans multiple architectural components).

Horizontal Slicing

Horizontal slicing results in tasks that will be developed in functional silos. To each individual contributor, this often seems like an efficient way to deliver work. But the lack of cross-layer coordination creates a need for an integration phase. And integration usually exposes issues that require rework.

HORIZONTAL SLICING: Multiple slices must be completed to deliver an increment of value

Vertical Slicing

Vertical slicing, on the other hand, results in work that involves changes to each architectural layer.

VERTICAL SLICING: Includes changes to each architectural layer sufficient to deliver an increment of value.

Divide and Conquer with Vertical Slicing

There are many creative ways to organize a backlog to support vertical slicing and avoid horizontal slicing. Here are 4 common approaches:

  • By step in the user journey: Organize the product backlog items based on where each item fits in the user’s workflow.
  • By business rule: Start with the most common rules and work toward the edge cases.
  • By path type: Address happy paths first and address the sad paths when possible.
  • By platform: Prioritize the platform with the highest usage and incorporate other layers as you expand.

A Real-World Example: Vertical Slicing in Action

A product owner prioritized a very large feature that would deliver 200 new pages on their web site, all of which shared common foundations and components. The effort was estimated to take multiple sprints. The initial plan was to build the foundation first, then to build page components (building blocks used to assemble each page) and finally, to build each page. 

A few sprints went by, but it was hard to see the progress. The product owner also struggled with discerning whether the team was delivering an MVP version of their work. She couldn’t tell if the minimally necessary amount of functionality was being delivered—no more and no less.

The product owner wanted a change. She recognized that some pages were more important than others. At the next planning session, the top 20 most important pages were identified. Each page represented a vertical slice of the work to be delivered. 

At first, the development team pushed back. They felt the risk of rework would be greater if the building blocks weren’t delivered as a single set. They feared they wouldn’t have the full picture of each layer if they made one page at a time, and that it would be more efficient to deliver layer by layer.

The product owner persisted. She split the 200 pages over 3 waves and defined the MVP for the foundational elements and components. 

The first sprint was a little messy. But the QA team were happy to get started on the few pages that were complete. 

In the second sprint, the team gained momentum. They built, tested, and completed new pages daily. Over the next four sprints, the team created its own reward system to support the flow. Every time a new page was delivered, they rang a bell. At each sprint review, they celebrated with a layer cake—representing the vertical slicing approach.

By the end of the first wave, the team had delivered 40% more pages than were expected!

Vertical Slicing is Quintessentially Agile

The benefits of vertical slicing align perfectly with core Agile principles. Defining work components to span architectural domains allows teams to:

  • Deliver value to the customer early and consistently
  • Establish a feasible MVP
  • Improve the accuracy of estimates: smaller vertical slices are easier to predict
  • Increase focus on the highest priority item and define what not to work on
  • Generate fast feedback: smaller slices enabled the team to make adjustments earlier
  • Increase focus on outcomes: end-to-end work can be executed more quickly and frequently
  • Improve cross-functional teamwork
  • Increase team engagement and morale through faster progress

Vertical slicing is an underrated success factor for Agile transformations. Some teams may resist the technique, but it’s an effective tool to help the team focus on delivering value to the customer faster, learn from deployments, and ship just what is necessary to deliver this value.

I highly recommend the tiramisu.