This post is from the CollabNet VersionOne blog and has not been updated since the original publish date.
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.