Skip to content

Thin Vertical Slices

Overview

Thin Vertical Slices are a way to break down larger features or user stories into smaller, manageable pieces that can be completed and delivered independently. Instead of working on a feature or functionality in its entirety, teams focus on delivering a minimal but usable version of that feature, ensuring that it provides value to users.


Thin Vertical Slices

Key Principles of Thin Vertical Slices

End-to-End Functionality

Each slice represents a complete workflow or functionality that adds value to the user. This includes all layers of the application, such as the user interface, business logic, and data storage.

Minimalistic Approach

Thin Vertical Slices prioritize delivering the minimum viable functionality required to fulfill a user need or achieve a business objective. This helps in reducing waste and focusing on what truly matters.

Continuous Delivery

By breaking down work into small slices, teams can continuously deliver and iterate on functionality, gathering feedback from users early and often.

Prioritization

Slices are prioritized based on customer needs, business value, and technical dependencies. This ensures that high-priority features are delivered first, maximizing the value delivered to stakeholders.


Vertical Slice vs Horizontal Slice

A user story is broken down vertically, they are broken down in such a way that smaller items still result in working, demonstrable, software, or a specific working feature useful for the user. In other words, a vertical slice means a bit of every layer. Again as an example, a new feature request like “showing x information on the 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.

Horizontal Slice

A horizontal slice tends to decompose problems into technical layers which may seem to match well with the technical skills of team members, i.e. they’re split amongst a database team, a UI team, and a server team each of which is responsible for their own tasks.

Even though we may call these horizontal slices user stories, and create them in form of user stories, they are in fact can’t deliver the value to the end customer without interaction or integration with other layers, components, or other building blocks of the software system. It is like slicing a cake horizontally, which does not allow for users to have the perfect bite.


Implementing Thin Vertical Slices

Identify User Needs and Prioritize Features

Understanding user needs and prioritizing features is the foundation of Thin Vertical Slices. - User Research: Conduct thorough user research to identify user pain points, preferences, and requirements. - Prioritization: Prioritize user stories based on factors such as business value, customer impact, and technical feasibility.

Break Down Features into Small Slices

Breaking down features or user stories into small, manageable slices is crucial for effective implementation.: - Slice Definition: Define each slice as a complete workflow or functionality that adds value to users. - Independence: Ensure that slices are independent and can be developed, tested, and delivered without dependencies on other slices. - Minimalism: Focus on delivering the minimum viable functionality required to fulfill a user need, avoiding unnecessary complexity or scope creep.

Form Cross-Functional Teams

Cross-functional teams play a vital role in delivering Thin Vertical Slices efficiently. Members of the team need to be able to collaborate and contribute to multiple aspects of the product. - Collaboration: Foster collaboration and communication within the team to ensure alignment on goals and priorities. - Shared Ownership: Encourage shared ownership of slices, where team members collaborate to deliver end-to-end functionality.

Set Up a Continuous Delivery Pipeline

A robust continuous delivery pipeline is essential for automating build, test, and deployment processes. TVS requires delivery to be made on multiple portions of the product at the same time. - Automated Testing: Implement automated unit tests, integration tests, and end-to-end tests to ensure quality and reliability. - Deployment Automation: Automate deployment processes to streamline the delivery of slices to production or staging environments.

Find more information on Thin Vertical Slices at: https://www.humanizingwork.com/the-humanizing-work-guide-to-splitting-user-stories/