The hidden slice in story slicing
There is some great information online from various agile experts about story slicing/splitting. But a key aspect which is often missed is the difference between capability and functional implementation slicing.
It is generally accepted that a key requirement of a user story is that its implementation should deliver value to a user of your product or service. The way I interpret this is that it should tell the story of enabling a customer to achieve something they cannot currently, or better than they already can, and the value to them of doing so. That is, a user story should represent the bringing to life of a valuable customer capability.
Many slicing patterns (e.g. workflow steps) are what I would call functional slicing techniques, not capability slicing, i.e. the slices don't actually represent a "smaller" (faster) way to provide the capability to a customer, rather they represent a smaller piece of work for the development team such that they can deliver a useful increment in a Sprint.
Note: Functional implementation slicing is an extremely useful and under-utilised activity, as is its close cousin: technical implementation slicing.
Any individual step of the workflow a customer has to go through to complete a job does not deliver value on its own. Therefore such a story is actually a functional step/story, not a user story. Some examples are:
- Viewing a product's details in an online store
- Managing items in the shopping cart
- Correcting payment details when I enter them wrong
- Logging in
All of these "stories" are dependent on the functional design and implementation of the product rather than purely about the job I as a customer am trying to achieve (i.e. purchasing the goods and getting them delivered to a convenient location). I only need to "correct payment details" in a situation where I am given a payment details form in the first place (a functional implementation decision). I only need to login to a system which requires it. I never want to login. There is a broader job I am trying to accomplish, and logging in is a step to doing that.
Real agility gains come in the capability slicing space, not the functional. Narrowing down customer segments, channels and devices to enable rapid build/measure/learn cycles in the market.
e.g. "Enable a customer to purchase our goods online and have them delivered to their home" can be sliced to become options for enabling:
- a specific segment of customers (e.g. business customers)
- a specific segment of goods (e.g. non-bulky)
- a specific segment of online customer entry points/channels (e.g. existing business customer portal on our website, or new dedicated mobile app), and
- a specific segment of devices owned by the customer segment above (e.g. iPhone12 or Google Home)
This activity gets us thinking about how we might enable tailored experiences for different customer segments and personas (rather than homogenising everyone into the generic "As a user" format), including leveraging our existing channels and the technology in the customers' devices. It also makes it easier to synchronise shorter development cycles with sales and marketing efforts.
So... one of our capability slices might be: "Enable business customers to purchase non-bulky goods from the business portal on our website using their iPhone 12". Now we have created a narrow, potentially valuable capability (from a collection of options) for which we can:
- focus our combined efforts to release something useful and valuable to market in weeks rather than months
- evolve a functional design and do just-in-time implementation slicing
If we only ever delivered this specific capability without addressing other customer segments, goods, channels and devices, we have delivered value. This is what slicing is all about, and this is the type of slicing which enables true agility.
Don't fall into the trap of thinking story slicing is only the stuff a development team might do with their coach in backlog refinement. Slice up at the capability level to unlock a whole new set of opportunities.
Discover the hidden slice in story slicing.
Intern at Everest Engineering, exploring Joy-Driven Development (JDD) in Data
1 年I'm struggling with this ... every time I play it through in my head capability slices = functional slices. Let me use the classic Cockburn elephant carpaccio exercise as an example. With functional slicing I add state taxes for Utah, Texas, etc one by one as stories. I also add levels of discount one by one. With capability slicing my first story might be: "as a salesperson I want to get the correct price for Utah orders of $1,000 or less" followed by Utah orders for $1,000 to $5,000, etc Aren't they exactly the same thing?
Agile Coach, Obeya Coach, Scrum Master & Magician
3 年same as horizontal vs Vertical slicing isn't it?
Standards and Practices Lead
3 年awesome and insightful stuff, Neil. I've just sent this to our product owners :)
DNB Programmamanager | Data | Veranderen | Verbinden | Agile |
3 年Bob Korte Mooie gedachte voor jou wellicht!