Fact-checked by Grok 2 weeks ago

Vertical slice

A vertical slice is a project management and software development technique that involves creating a complete, end-to-end implementation of a specific feature or segment, integrating all necessary layers such as user interface, business logic, and data access to demonstrate functionality and progress. In video game development, it specifically refers to a fully playable portion of the game that showcases the intended player experience using final-quality assets, including gameplay mechanics, art direction, user interface, sound design, and core systems, often serving as a proof of concept for securing funding or publisher partnerships. This approach contrasts with horizontal slicing, which focuses on parallel development across layers without full integration, by emphasizing vertical integration to deliver immediate value and enable early feedback. Originating prominently in the during phases, vertical slices help developers assess feasibility, identify technical gaps, and align on vision before committing to full-scale production. They are particularly valuable in Agile methodologies for breaking down user stories into deliverable increments that provide holistic input, fostering cross-functional collaboration and reducing risks associated with siloed development. In broader , the concept extends to , where applications are structured around distinct use cases or requests rather than traditional layered hierarchies, grouping related concerns—like validation, data access, and presentation—within self-contained units to minimize inter-slice coupling and simplify maintenance. Key benefits of vertical slices include accelerated iteration through , enhanced focus on by simulating real-world usage, and improved , as each slice can evolve independently without disrupting shared components. In game funding contexts, they build investor confidence by providing tangible demonstrations of potential, often incorporating essential elements like immersive worlds and seamless controls alongside optional enhancements such as tutorials. This methodology promotes efficient resource allocation, with developers prioritizing polished segments over incomplete breadth, ultimately leading to more cohesive and market-ready products.

Definition and Origins

Core Definition

A in refers to a complete, thin of a single feature or that spans all technical layers of an application, including the , , and data access, to deliver observable end-user value. This end-to-end approach ensures the feature is fully functional and integrable from the outset, enabling early demonstration and feedback. Conceptually, a vertical slice contrasts with layered development by emphasizing functionality over isolated components; rather than building horizontally across layers for multiple features, it integrates vertically to create a cohesive, working unit that provides immediate utility. In contexts, this aligns with user stories by breaking down work to span layers in a single iteration, fostering incremental progress. For instance, a feature as a vertical slice would encompass the button for user input, the logic, and database , resulting in a fully operational capability rather than partial layer implementations.

Historical Development

The concept of the vertical slice emerged in the early 2000s as part of agile methodologies, heavily influenced by (XP) practices developed by between 1999 and 2000. XP emphasized delivering small, functional increments of working software over extensive upfront documentation, encouraging teams to build end-to-end that provide immediate value and enable rapid feedback. This approach contrasted with traditional methods and laid foundational principles for slicing development into complete, testable units rather than isolated components. The term "vertical slice" gained prominence in the mid-2000s alongside the popularization of Scrum frameworks and user story refinement techniques. Descriptions of user stories as vertical slices that cut through all layers of a system—such as user interface, business logic, and data persistence—to deliver a cohesive, valuable increment to the user helped teams avoid horizontal slicing, which focuses on technical layers without user-facing outcomes, and became a standard in agile literature for ensuring iterative progress aligns with business needs. This refinement, building on XP's iterative ethos, influenced widespread adoption in software teams seeking to balance completeness with speed. While the practice of creating end-to-end prototypes predates the term in both software and game development, the specific phrase "vertical slice" appears to have originated in the around the late 2000s to early . By the , vertical slices were adopted in game development as a key practice for demos, evolving from earlier prototyping traditions that prioritized playable builds to test and secure publisher interest. These early prototypes, often rudimentary but functional segments of , mirrored agile's focus on demonstrable progress, allowing developers to refine core loops before full production. The approach proved essential for and AAA studios alike, enabling risk reduction through iterative validation of artistic, technical, and narrative elements.

Vertical Slices in Software Development

In Agile Methodologies

In agile methodologies, vertical slices play a crucial role in breaking down large epics into smaller, manageable user stories that deliver incremental value to the end user. This approach ensures that each user story adheres to the INVEST criteria—Independent, Negotiable, Valuable, Estimable, Small, and Testable—by focusing on end-to-end functionality that spans multiple layers of the system, such as user interface, business logic, and data persistence, rather than isolated components. By structuring stories this way, teams avoid dependencies that could hinder parallel work and prioritize features that provide tangible benefits early in the development cycle. Vertical slices integrate seamlessly into sprint planning, where they form the basis for selecting work items that can be completed within a single , typically lasting one to four weeks. This enables agile teams to gather early from stakeholders during sprint reviews, as each slice demonstrates working software that fulfills a portion of user needs, allowing for rapid adjustments based on real-world validation. Furthermore, by completing features across all architectural layers in one , vertical slices help reduce , as teams address integration and testing holistically rather than deferring cross-layer issues to later phases. A practical example of this refinement process involves decomposing a "user registration" epic into vertical slice user stories. For instance, one story might specify: "As a new user, I want to sign up for an account so that I can access personalized features," encompassing form input, email validation, password hashing, and database storage in a single, testable unit. This slice delivers immediate value, such as enabling the first user sign-up, while subsequent stories could extend it to editing or canceling accounts, ensuring progressive enhancement without partial implementations.

Vertical Slice Architecture

Vertical Slice Architecture is an approach to that organizes code around specific or use cases, known as vertical slices, rather than traditional layers such as controllers, services, and repositories. In this model, all components related to a single —such as user authentication—are grouped together in a dedicated module or folder, encompassing everything from input handling to data access and output generation. This contrasts with layered , where code is segmented by technical concerns, often leading to widespread dependencies across layers. By coupling components vertically along the axis of change for each , the architecture minimizes dependencies and promotes between slices. The concept was popularized by Jimmy Bogard in his 2018 blog post, where he advocated for building applications around distinct requests to encapsulate all concerns from frontend to backend within each slice. This organization aligns closely with (CQRS), which separates read and write operations. It is often implemented using libraries like the , a implementation created by Bogard to handle requests via dedicated handlers. In such implementations, each vertical slice typically includes a request object (e.g., a command or query) paired with a handler that encapsulates the full for that feature, including any necessary data access or validation, without relying on shared abstractions like generic repositories. For instance, a "user login" slice might contain a LoginCommand and its LoginCommandHandler, keeping all related logic self-contained and reducing the need for cross-cutting concerns that span multiple features. This structure enhances maintainability by allowing developers to refactor or extend individual features independently, as new slices add code without modifying shared components, thereby avoiding unintended side effects. In practice, handlers facilitate this by isolating feature-specific logic, making it easier to test and evolve slices in —for example, updating logic in the handler without impacting other areas like . Overall, vertical slice architecture scales better for , as it reduces the of navigating layered dependencies and supports faster iterations on user stories.

Applications in Game Development

Purpose and Use Cases

In game development, the primary purpose of a vertical slice is to serve as a playable that demonstrates core mechanics in an end-to-end manner, integrating elements such as character movement, , and level progression within a single, cohesive level. This approach allows developers to validate the overall loop by combining placeholder or final-quality assets across disciplines like art, sound, , and physics, ensuring a representative taste of the intended player experience. Unlike broader , a vertical slice focuses on polish and functionality to prove the feasibility of the game's vision. Vertical slices are commonly used as early proof-of-concept deliverables for pitches, where a playable segment showcases the "fun factor" and readiness to secure from publishers or platforms like Funding Club. In pipelines, they function as key s that align cross-functional teams—designers, programmers, and artists—around a shared , often marking the from to full development. This role helps establish realistic timelines by revealing the effort required for shipping-quality . Additionally, vertical slices enable by identifying potential issues in , inefficiencies, or viability early in the process, such as muddy or production blockers, thereby reducing costly rework later. For instance, in an , a vertical slice might consist of a single level that incorporates integrated systems to test and refine the core loop before committing resources to the full title. This strategic application underscores their value in confirming not just if a game should be made, but whether it can be produced effectively.

Notable Examples

A prominent example of a vertical slice in AAA game development is Obsidian Entertainment's prototype for (2019), which featured an outdoor map connected to a and areas to demonstrate core mechanics, companion interactions, and choice-driven gameplay. This slice, completed about one year into development, impressed publishers by showcasing the game's scope and feasibility, leading to greenlighting for full production. A notable industry trend involves using vertical slices for and backer engagement, exemplified by 's alpha builds since its 2011 campaign launch. Cloud Imperium Games released vertical slices of ship combat modules, such as the 2017 Squadron 42 demo featuring seamless transitions from operations to dogfighting and rescue missions, to demonstrate progress on multiplayer space simulation elements and secure ongoing funding over $861 million as of September 2025. These modules highlighted polished flight controls, weapon systems, and modular ship customization, building community trust amid extended development.

Comparison with Horizontal Slices

Key Differences

Vertical slices in and prototyping are feature-centric, encompassing work across all architectural layers—from to and data persistence—to deliver a complete, end-to-end piece of functionality that provides tangible value. In contrast, horizontal slices are layer-centric, focusing on completing a single technical layer, such as the or database components, across multiple features or user stories without integrating them into a working whole until later. This distinction arises in Agile methodologies, where vertical slices align with user stories by prioritizing demonstrable features, while horizontal slices often emerge from component-based breakdowns that segregate work by technical expertise. Methodologically, vertical slices promote cross-functional collaboration within a to build thin, iterative increments of a , enabling rapid progression toward a . Horizontal slices, however, facilitate parallel development by specialized teams or individuals, such as separate groups handling design versus backend services, but require subsequent efforts to realize any functionality. In terms of delivery impact, vertical slices allow for early user testing and on complete features, as each slice stands alone as a deployable unit. Horizontal slices, by deferring , support concurrent progress on but postpone the delivery of user-facing value until all layers are assembled. A common visual analogy illustrates these differences: a vertical slice resembles cutting a piece of cake straight through all its layers, yielding a complete, edible portion that includes every element from top to bottom. Conversely, a horizontal slice is akin to separating and preparing each layer of a multi-tiered dish, like , individually—resulting in isolated components that must be stacked later to form a cohesive whole. This layered separation in horizontal approaches mirrors traditional waterfall-style development, while the through-cut of vertical slices embodies the iterative essence of Agile practices.

Pros and Cons

Vertical slices offer several advantages in and game creation by enabling end-to-end feature implementation that aligns closely with priorities. One key benefit is the facilitation of faster loops, as teams can deliver deployable, working increments within a single sprint or , allowing stakeholders to validate functionality early and iteratively refine requirements. This approach reduces risks compared to layer-by-layer development, since cross-layer dependencies are addressed within the slice itself, minimizing surprises during assembly. Additionally, vertical slices promote better alignment with by focusing on user-centric outcomes rather than isolated technical components, enabling teams to prioritize high-impact features and achieve quicker time-to-market for viable products. In game development, these benefits extend to practical milestones, such as showcasing core mechanics to secure or build player interest, while providing a controlled environment to test integrated systems like , , and audio. Overall, the feature-focused structure of vertical slices enhances maintainability and flexibility, as changes are localized, reducing unintended side effects across the project. Despite these strengths, vertical slices present notable drawbacks, particularly in code management and . A primary concern is the potential for duplicated code across slices, as shared logic like validation or error handling may be replicated rather than centralized, leading to maintenance overhead. In large teams, challenges arise from cross-layer dependencies that require heightened coordination, complicating workload distribution and potentially hindering specialization if developers work in isolation on slices. Furthermore, the initial setup demands higher coordination effort, including an adjustment period for teams accustomed to approaches, which can lower early due to boilerplate implementation in each slice. Contextual trade-offs highlight vertical slices' suitability for small, feature-driven projects but limited scalability in infrastructure-heavy endeavors, where extensive shared components amplify duplication and consistency issues. In game development, resource intensity can strain small teams, risking or inflexible design directions if the slice sets premature expectations.

Implementation and Best Practices

Steps to Create a Vertical Slice

Creating a vertical slice begins with identifying a high-value or feature during backlog refinement sessions, where the team selects an item that delivers tangible end-user value and can be completed within a single . This step ensures the slice focuses on a self-contained functionality, such as enabling basic search in an application, avoiding overly broad epics that span multiple sprints. Backlog refinement involves collaborative discussions to prioritize stories based on business impact and feasibility, often using techniques like story mapping to visualize user journeys. Next, the team maps dependencies across all application layers—including , , and data access—while prioritizing a minimal viable that satisfies the core need without excess features. This reveals necessary integrations, such as connecting a search to backend query logic and database retrieval, and helps minimize cross-slice couplings to keep the effort focused. The goal is to define the thinnest possible functionality that works end-to-end, often documented in a refined with acceptance criteria. In vertical slice architecture, this organization groups related concerns by feature rather than by technical layers. Development then proceeds iteratively, with the building and components layer by layer, incorporating testing at each point to ensure functionality flows seamlessly from to . Tasks are broken down to allow work across disciplines, such as designing the UI alongside implementing queries, followed by and tests to validate interactions. This iterative approach catches issues early, maintaining momentum toward a deployable artifact. Finally, the completed vertical slice is deployed to a or production-like environment for user feedback, enabling demonstration during sprint reviews and rapid based on real-world input. This step closes the feedback loop, confirming the slice delivers value and informing adjustments for subsequent slices. For a simple search feature—from initial wireframe to end-to-end testing—this entire process fits within a single sprint.

Tools and Techniques

Story mapping serves as a key technique for visualizing vertical slices in agile development, arranging user stories along horizontal axes by user activities and vertical axes by priority to identify incremental, end-to-end features for delivery. This approach enables teams to create a "walking skeleton" of the minimal viable product in the first row, followed by layered enhancements that form complete vertical slices without dependencies on lower-priority elements. Test-driven development (TDD) supports layer integration within vertical slices by structuring each development cycle as a complete vertical implementation spanning , , and data access layers. In TDD, developers write tests first to define implicit contracts that ensure seamless integration across layers, validating the slice as a functional unit before proceeding. This method promotes robust, testable slices that align with agile's emphasis on rapid feedback. Continuous integration/continuous deployment (CI/CD) pipelines facilitate rapid deployment of vertical slices by automating code integration, validation, and release processes in agile environments. allows daily integration of small slice updates with automated testing, while enables frequent, on-demand deployments—such as multiple releases per day—decoupling feature delivery from broader system constraints to support iterative value delivery. In vertical slice architecture, libraries like MediatR handle requests by implementing a for in-process messaging, dispatching commands, queries, and notifications to dedicated handlers within each feature slice. This decouples slice-specific logic, allowing independent development and testing of requests across the application without tight coupling to other features. For game development prototypes, engines such as and enable the creation of vertical slices by integrating core mechanics, assets, and polish into a playable segment that demonstrates end-to-end . In , developers use C# scripting and the to build, debug, and iterate on slices incrementally, prioritizing features from a to produce a functional . similarly supports rapid prototyping of polished slices through its blueprint system and C++ integration, facilitating cross-disciplinary collaboration. Project management tools like and track vertical slice progress by organizing work items into boards that visualize status across sprints and teams. In , taskboards display tasks grouped by stories, allowing drag-and-drop updates to "To Do," "In Progress," and "Done" states, with remaining work estimates feeding into burndown charts for accurate progress monitoring. extends this through integrations that link cross-functional issues, enabling shared tracking of slice completion across multiple teams. A recommended is using flags to isolate vertical slices during development, toggling functionality on or off without code changes to enable trunk-based workflows and controlled testing. This ensures slices remain independently deployable, reducing risks in progressive rollouts and allowing exposure to specific users for validation before full integration.

References

  1. [1]
    What vertical slicing is and how it's used in project management
    Sep 9, 2022 · A vertical slice is a portion of a game that developers can use as proof of concept to procure funding from stakeholders.
  2. [2]
    Funding 101: The impact of the vertical slice - Xsolla
    Jun 26, 2024 · A vertical slice is a fully playable portion of a game that shows the developer's intended player experience. It is similar to a playable demo ...
  3. [3]
    Vertical Slice Architecture - Jimmy Bogard
    Apr 19, 2018 · In this style, my architecture is built around distinct requests, encapsulating and grouping all concerns from front-end to back.Missing: definition | Show results with:definition
  4. [4]
    User Story Splitting - Vertical Slice vs Horizontal Slice
    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 ...User Story Splitting - Vertical... · Product Backlog Refinement · Why Vertical Slice?
  5. [5]
    What Is Vertical Slicing And Why It Is Important? - Edworking
    Vertical slicing is an approach where a feature or functionality is developed and delivered end-to-end in a single iteration.
  6. [6]
    Story - Scaled Agile Framework
    Feb 5, 2025 · – Valuable (providing a valuable vertical slice to the customer) ... User Stories Applied: For Agile Software Development. Addison-Wesley ...
  7. [7]
    Why We Should Stop Saying 'Vertical Slices' - Game Developer
    Dec 1, 2011 · Ron's definition is that vertical slices emerge from a plan that defines all the slices up front. This might be a better approach from an ...Missing: history | Show results with:history
  8. [8]
    Story - Scaled Agile Framework
    Feb 5, 2025 · They are the primary tool Agile Teams use to describe a small, vertical slice of intended system behavior. A story provides enough ...
  9. [9]
    The Humanizing Work Guide to Splitting User Stories
    User Stories Are Vertical Slices. You'll often hear the term vertical slice in reference to good stories. This is about the shape of good stories relative to ...
  10. [10]
    [PDF] A User Story Primer - Scaled Agile Framework
    There is no set routine for splitting user stories into iteration-sized bites, other than the general guidance to make each story provide a vertical slice, some ...
  11. [11]
    User Stories: Making the Vertical Slice - Applied Frameworks
    As described by Wikipedia a vertical slice “refers to a cross-sectional slice through the layers that form the structure of the software code base.” For example ...
  12. [12]
    Prototypes & Vertical Slice - Levelling The Playing Field
    Sep 26, 2022 · The Prototypes are to help you figure out whether you should make a game, and the Vertical Slice is to help you figure out whether you can make it.Missing: origin | Show results with:origin
  13. [13]
    Vertical Slice in Game Development: Meaning, Benefits & How It ...
    Sep 25, 2024 · Scrum teams often use the vertical slice as a milestone, aligning designers, programmers, and artists around a common goal. It's a way to ...
  14. [14]
    What's vertical slice? A quick guide - Fungies.io
    Mar 22, 2023 · It is often used by game developers to pitch a game to publishers or investors, and it can also be used to demonstrate the game to the public ...<|control11|><|separator|>
  15. [15]
    Celebrating the 10th Anniversary of The Last of Us - Naughty Dog
    Jun 14, 2023 · Members of the development team for the original The Last of Us look back on lessons learned, favorite memories, and more.
  16. [16]
    Vertical Slice: Supergiant Games - - Gamereactor
    Oct 25, 2020 · In the second edition of our new series, we focus our attention on the work of acclaimed indie developer Supergiant Games.
  17. [17]
    Hades - Supergiant Games
    Jun 13, 2021 · Hades combines the best aspects of our critically acclaimed titles, including the fast-paced action of Bastion, the rich atmosphere and depth of ...<|separator|>
  18. [18]
    Squadron 42 Vertical Slice - Star Citizen Wiki
    Aug 10, 2025 · A recorded demo for Squadron 42 shown during the Holiday Special 2017, showcasing a one-hour vertical slice of the game's content/story/features.
  19. [19]
    Squadron 42: Pre-Alpha WIP Gameplay - Vertical Slice - YouTube
    Dec 22, 2017 · Watch the standalone Squadron 42 Vertical Slice Gameplay Demo showcasing Navy life aboard an Idris frigate and a rescue mission in an ...
  20. [20]
    Vertical Slicing and Estimation to Make Decisions
    Oct 10, 2024 · Intro to Agile New to agile and Scrum? Or just ... We then took markers and started circling sets of cards that delivered a vertical slice.
  21. [21]
    Horizontal vs vertical story slicing, or why is horizontal ... - Scrum.org
    Oct 19, 2018 · Vertical slices give you something to show them in increments and then they can adjust their needs based on what you show them. And sometimes ...
  22. [22]
    Disadvantages of vertical user stories
    Feb 7, 2014 · Writing vertical slice stories means the team's velocity on the first few stories will be artificially low due to this prerequisite boilerplate.
  23. [23]
    Agile Vertical Slicing for Tracking Cross-Functional Work - Zenhub
    Nov 18, 2021 · Taking a vertical slice approach is similar to the way you would eat a cake. You take a bite-sized slice with all of the layers. On an Agile ...Missing: lasagna analogy
  24. [24]
    What is Story Mapping? - Agile Alliance
    Story mapping consists of ordering user stories along two independent dimensions. The “map” arranges user activities along the horizontal axis.
  25. [25]
    [2407.13258] The role of slicing in test-driven development - arXiv
    Jul 18, 2024 · In this paper, we propose a theoretical framework for TDD, with the following characteristics: 1) Each TDD cycle represents a vertical slice of a (probably ...
  26. [26]
    Continuous Delivery Pipeline - Scaled Agile Framework
    Feb 6, 2025 · The Continuous Delivery Pipeline (CDP) represents the workflows, activities, and automation needed to guide new functionality from ideation ...
  27. [27]
    Your First Milestone: Vertical Slice - Unity Learn
    This session introduces the vertical slice, the first major milestone in the development of a game.
  28. [28]
    Track progress and individual items on the Taskboard - Azure Boards
    Jul 17, 2025 · From your project, open the sprint backlog for your team. · Select Boards > Sprints. · Select the correct Team from the team selector menu.
  29. [29]
    What is a feature flag and why are feature flags used?
    A feature flag is a software engineering technique that turns features or functionality on or off without modifying the source code or requiring a redeploy.