Slicing Work Vertically

My friend Tobias has a requirements analysis exercise called “Planning a Party.” I’ve used it twice this year already.

The president of your company is throwing a Christmas party for his employees. He’s asked you to help getting his large house ready. He’s given you a list of unprioritized and poorly formed tasks such as “clean all rooms” and “buy sound system.” The exercise is to rewrite the tasks into more Agile user stories.

Beginners will translate “clean all rooms” into something like “As a party host, I want all rooms clean so my guests don’t think I’m a slob.” More advanced folks will add a definition of done.

The people who’ve really been paying attention will then realize “all rooms clean” is an epic which can be split vertically into living room clean, upstairs bedroom clean, basement clean, guest bathroom clean, etc.

Splitting work vertically allows the Product Owner to prioritize it by business value. Perhaps 80% of the value would come from cleaning the 20% of the house the guests will occupy most of the time.

What would “clean all rooms” split horizontally look like? An analysis task to get a floor plan of the entire house, an investigate task to visit the house and determine what cleaning supplies and equipment were already on the premises, a task to procure supplies in bulk from Costco…

Then we might don rubber gloves and clean all the windows in the order that’s involves the least traveling, switch to the feather duster and dust the house from top to bottom (doing work in order of technical dependencies since dust falls downward), and eventually vacuum all the floors. We might even recruit a specialist in window cleaning, a specialist in dusting, a specialist in vacuuming, and schedule them in dependency order.

Splitting the work into horizontal tasks is more efficient if we got the requirements right in the beginning, if all work is equally important, and if schedule risk is low.

The vertical slices (getting the entryway done/done/done, then the living room) introduce microinefficiencies and even rework. But in the big picture they allow us to maximize the work not done and react more gracefully to changing circumstances.

While there’s a place for both, most people I meet already have lots of practice at horizontal slicing and aren’t fully aware of the opportunities provided by vertical slicing.

–mj

Michael James

See a team creating vertical slices in this example Backlog Grooming Meeting.
Read about Scrum in the Scrum Reference Card.

Michael James

Michael James is a software process mentor, team coach, and Scrum Trainer with a focus on the engineering practices (TDD, refactoring, continuous integration, pair programming) that allow Agile project management practices. He is also a software developer (a recovering "software architect" who still loves good design).

Posted in Agile
One comment on “Slicing Work Vertically
  1. Tobias Mayer says:

    Thanks for writing this up Michael. I have revived that exercise too recently. It is interesting how something as unrelated to software (a party) can produce just the right learning for software. Readers should also give some thought to that requirement “buy sound system” — what is essentially wrong with that?

Leave a Reply

Your email address will not be published. Required fields are marked *

*