Choosing Between Horizontal and Vertical Story Splitting Learn why adopting either horizontal or vertical story splitting could make all the diference for a product owner. Annika Hey Design Principal Atanas Atanasov Software Development Manager – Agile Frameworks Björn Stansvik Founder & Chief Executive Officer Daniela Nazim MentorMate Alumni Dimitar Dobrev MentorMate Alumni Craig Knighton Chief Operating Officer Eleonora Georgieva Global VP, Delivery George Dormishev System Administration Manager Ivaylo Kostadinov Director, Software Engineering - .NET Jamie Bolseth MentorMate Alumni Jay Miller President Jeni Kyuchukova Director, Quality Engineering Jessica Anderson VP of Finance and Administration Liz Spolyar Global Director, Continuation Engineering Nick Curran Technical Architect Nikolay Lyubchev Global Director, Talent Acquisition, MentorMate Stefan Tsvyatkov Director, Software Engineering - Mobile Stefan Tzanev Chief Financial Officer Vesselin Dobrev General Manager (Bulgaria) Sylvia Vassileva Software Development Manager - Spok Filip Gajtanovski Software Development Manager - Storyworks Krasimir K. Nikolov VP of Technology Katherine Kelly Director of Operations (USA) Carrie Siewert Strategic Account Manager Brady Swanson Global Director, Marketing Eve Poeschl MentorMate Alumni Ryan Peña MentorMate Alumni Vassil Vassilev Software Development Manager - .NET Pavel Petrov Director, Software Engineering - LAMP&FE Ivan Peev Senior Technology Manager Bob Reuss MentorMate Alumni Vera Kasapova QA Manager Greta Yamacheva QA Manager Robert Samuelsson General Manager (Sweden) Kyle Simmons Solutions Architect Robin Thomas Solutions Architect Nataliya Naydenova MentorMate Alumni Adam Malone Alexander Dimitrov Enterprise Architect Andrea Kates CEO, LaunchPad Central Andrew Eklund CEO, Ciceron Andrew Marinov Angel Nikolov MentorMate Alumni Anurag Shukla Aron Wolde MentorMate Alumni Ashley Goodridge Office Assistant Benjamin Gramlich MentorMate Alumni Chris Black MentorMate Alumni Christa Haeg MentorMate Alumni Colin Lee MentorMate Alumni Deyan Stoynov MentorMate Alumni Dimitar Danailov MentorMate Alumni Dobrinka Tabakova Doug Leatherman Emily Genco MentorMate Alumni Fanka Vassileva Gabriela Zagarova MentorMate Alumni Gary Conkright CEO, physIQ Gary Fingerhut Executive Director, Cleveland Clinic Innovations Gavin Finden MentorMate Alumni Georgi Graham Klang Hyusein Hyuseinov Senior Automation QA Ian Good Global VP, Operations Iva Jack Cosentino James Williams John Byrne Kaloyan Stoilkov MentorMate Alumni Kosta Hristov Krasimir Gatev Senior Android Developer Lazar Petrakiev Lyubomir Dobrev Senior .NET Developer Lubomir Velkov Marin Yotovski Mark Smith MentorMate Alumni Martin Dimitrov MentorMate Alumni Martin Kalyonski Mike Hagan MentorMate Alumni Nikolay Andonov Nikolay Arhangelov Riley Panko Guest Contributor Roger Ferguson MentorMate Alumni Ryan Sysko Chairman, WellDoc Ryan Blake MentorMate Alumnus Sarah Rockholt MentorMate Alumni Sean McDevitt CEO, Sensei Siyana Slavova Stanislas Walden MentorMate Alumni Stanislav Atanasov Stanislava Bogdanova MentorMate Alumni Stefanie Trimble MentorMate Alumnus Stephen Fluin Stoyan Stoyanov MentorMate Alumnus Tessa Cacek Staffing Manager Tom Clemens MentorMate Alumnus V8 JavaScript Engine Viktor Mitev Yolanda Petkova Marketing Design Lead Pete Anderson Lead Product Owner, Target Vasil Nonchev Java Software Development Manager Dilyana Totseva QA Manager Stanimir Nikolov Software Development Lead - iOS, MentorMate Rosen Kolev Technology Principal Dimitar Mihaylov MentorMate Alumni Nikola Genov Software Architect - .NET Neli Todorova Software Development Manager - LAMP Yavor Dimitrov MentorMate Alumni Georgi Karanedyalkov Software Development Lead - Android, MentorMate Denislav Ganchev Technology Principal Stefan Shopov QA Manager Konstantin Rusev Java Developer Borislav Dimitrov Senior Android Developer, MentorMate Tsvetelina Lazarova MentorMate Alumni Dimitar Gadzhev Developer Plamen Stoev Software Development Manager - Front-end Jake Nelsen Senior Experience Designer Zlati Pehlivanov Senior Software Engineer II Kate Tolmie Senior Experience Designer Martin Angelov Director, Software Engineering - LAMP&FE, MentorMate Dimitar Zhelev Senior .NET Developer Joel Swenson Content Manager Kiril Ivanov Quality Assurance Analyst Viktor Hristoskov Software Development Lead - iOS, MentorMate Violeta Nikolcheva Database Developer Biliana Kadakevlieva Senior Quality Assurance Analyst Chris McLeod Senior Solutions Consultant Antonii Georgiev Junior .NET Developer Alexander Rusev Front-End Developer Matt Erickson MentorMate Alumni Brian Buchkosky Global Director, PMO David Tran MentorMate Alumni Kristin Krueger MentorMate Alumni Magdalena Chervenkova Business Analyst Denny Royal Chief Design Officer Joe Bodell MentorMate Alumni Viktoria Chuchumisheva HR Manager Kalina Tekelieva Senior Content Marketing Artist Daniel Rankov MentorMate Alumni Alexander Alexandrov BA Lead MentorMate Clint Rowles VP, Business Development Nikola Donev SysOps & DevOps Lead Tseko Tsolov Frontend Developer Denislav Lefterov Automation QA Analyst Dilyana Kodjamanova MentorMate Alumni Emma Jorstad Project Manager, Lead Georgi Georgiev Software Development Lead - LAMP, MentorMate Martin Panayotov Senior iOS Developer, MentorMate John Blake Senior Account Manager Tyler Compton Solutions Architect Nikola Peevski Software Developer — Lamp & Front-End Aaron Whitney Director of Client Strategy Veliko Ivanov Senior Cloud Engineer Suzanne O’Brien Senior Project Manager Svetlin Stanchev Software Development Lead - Front-end, MentorMate Todor Todorov Senior Cloud Engineer Kate Stamatova Senior QA Analyst Frank Anselmo Global Director, Project Management Gyuner Zeki Solutions Architect Galin Stanchev QA Analyst Sarah Hoops Business Development Manager Brenden Diehl Business Development Manager Anna Krivova Software Development Lead - Front-end, MentorMate Ivelina Kavalova Senior Business Analyst, MentorMate Paul Sanders MentorMate Alumni Jim Cikanek Senior Client Strategist Samuil Yanovski Software Development Manager - Android, MentorMate Krasimir Gatev Senior Android Developer, MentorMate Kristina Goryalova Talent Acquisition Manager Elena Petrova HR Specialist Jay Matre Senior Business Architect, MentorMate Lilyana Dimitrova QA Specialist Josh Marquart Chief Strategy Officer Mario Gorki Senior Mobile Developer Simeon Zhekov Cloud Engineer Hristo Stoyanov Cloud & DevOps Lead Ben Wallace Enterprise Architect Boyan Stoyanov Data & Dota Specialist Petya Ivanova Director, Software Engineering - Java Sebastian Ortiz-Chamorro VP of Engineering, Latin America Consuelo Merino Director of Operations Imagine arriving at an intersection with multiple road directions all leading towards the same destination. Some roads may take faster to drive, others — less traffic lights to pass through. But which way do you go? And how do you make up your mind which one is the best, given different circumstances? Such is the case for user stories too. On one hand, their basic structure follows a straightforward format, regardless of the work items included: As a [role], I want to [action], so that I [business value]. On the other hand, tending to any external demand for a user story entails making a much more thought-out decision. It necessitates a series of conversations about the various levels of detail and functionality. Stories are first and foremost meant to serve as a tool to enhance teamwork. Equally as important though, is to further show the value of the team’s work to the project’s stakeholders and all potential or existing users. This is where the verbal coordination needs major adjusting. Since the level of technical understanding on both sides is vastly different, software service teams need to bridge the gap by mustering the right approach to take users on board with their development. Teams, stakeholders, and end users often come into contrasting opinions due to their own distinct levels of technical understanding. Understanding Story Splitting Building user story layers is the mantra in the work of any well-organized development team. But it’s one thing to stack a solution with layers of functionalities and another conveying the engineered progress to the client. To tick all checkboxes when immersing users into a user story, let’s adopt the following cake analogy. Just like developing and stacking layers, it would take much less time to slice a cake horizontally. While still edible and somewhat tasty, the cake servings will be uneven and dull in taste and will probably drive most ordinary consumers away — those craving for the full spectrum of flavours. Naturally, that’s what stakeholders want too — a symbiosis of all tastes and layers. In other words, they want a piece of the entire product. A wholesome introduction to all features and layers works differently — and oftentimes better, than the individual examination of singular components. Horizontal Slicing To illustrate this approach, let’s take a step back and imagine a product owner coming with a request to build an ATM. To assemble it would require a debit or a credit card and a type of a UI that will enable them to select a sum and prompt them to use a PIN to then receive money. Expectedly, the requested software would carry a considerable amount of layers — a database, an API, security and network layers, and a functional UI. Given that they all need to comply with either banking or ATM protocols and procedures, it becomes difficult to encapsulate all elements needed for a simple, small portion of a feature that’s being described and documented. Therefore, teams are incentivized to split requirements into layers based on the scale of engineering, rather than by end-user or stakeholder value. Disadvantages Minimal transparency — Involving people external to the team’s daily project advances is never an effortless process. After all, it’s clients who are the prime decision-makers and as such they yearn to maintain a level of close communication with the engineering team — a practice that continuously takes longer and harder to coordinate. Obscure priorities — Mismatched priorities are a team’s worst enemy. Prioritization is always key, but when it’s done improperly, it could passively increases delivery risk. Logical lapses — The work of developers often pushes towards the next logical component in the system that needs to be built, rather than what the end user needs most often. This could be observed with ATMs too. While withdrawing money accounts for about 90% of any ATM’s usage, other features like checking the balance or changing the PIN are also there for the sake of user convenience. Developing them could easily be moved post-MVP. Vertical Slicing Unlike horizontal splitting, this model considers the purpose and goals of the average product owner. A PO is usually someone constrained by a budget limit, driven to achieve a specific goal within a specific timebox while showing constant progress to other stakeholders. Their interest is to observe something visual, which, in turn, would justify the spent budget. Just like them, users will think of an application in terms of the behavior they find most valuable. This explains why it’s simply impractical to build software the same way users think about and use that software. Instead they need to receive ‘slices’ of functionality, or splitting user stories into vertical chunks. While the size of any story can vary, the best practice is to shape them so that they fall under shorter timeframes to complete — usually within a day or two. It also allows the engineering team to prioritize its focus on a set of stories within a specific portion of the system. This process isn’t intrinsically easy, but it is well worth the effort because it gives the ability to create a constant flow of valuable, usable functionality for the users. Nevertheless some stories cannot be split, due to either: Ambiguous requirements Uncertainty in the depth of the implemented technical details Enormity of some items which are too big to be logically split Advantages The crucial and often underestimated value of splitting stories vertically is the boost in communicating with the development team. The multiple merits — continuous conversation, improved engineering process, and tending to the business value — help set the tone for understanding the scope and complexity of any project. Other conveniences of vertical splitting include: Asking the team to proactively participate and engage, which: Improves the synergy between members Improves the quality of the product Improves the building speed, thus making everyone more efficient Delivering specific features that stakeholders could ‘see and touch’ more frequently Enhancing the client-team relationship Setting reasonable expectations for all parties involved Eradicating project ambiguity Allowing for better estimates Diminishing requirement-related risks Allowing the PO to prioritize highly valuable items without any overhead Increasing steady delivery of features, which then increases the feedback coming from real users The Main Challenge Essentially, software products resemble more of an iceberg than a cake. That’s because, until the release date, the larger part of the software usually remains ‘hidden’ from the stakeholders. Here’s why it’s so integral for teams to find the most practical, easy-to-use way to adopt the vertical splitting inside the project. Applicable in the case of building the ATM too, this strategy would allow for a simple withdrawal of money, implying that the security protocols are met. It would further register proper money deduction from a person’s account and instantly confirm the new bank account value. Summary With no ready-made template for adopting either horizontal or vertical splitting into any project, it’s in the engineers’ hands to weigh on the better match. In either case, keeping track of work progress on a constant basis and breaking down technical tasks into sub-tasks appears the most sound approach for tying product owners to the team’s daily progress. Creating software with slices of value is never easy. But as part of the principles of Agile development, it provides the network for creating a constant flow of valuable, usable functionality for users, while striving for maximum simplicity and streamlined team objectives. Tags CompanySupport Share Share on Facebook Share on LinkedIn Share on Twitter Share Share on Facebook Share on LinkedIn Share on Twitter Sign up for our monthly newsletter. Sign up for our monthly newsletter.