SLICING

Slicing is an important step in software development process and it’s including slicing big activities to smaller, manageable tasks. There are usually two fundamentally different ways of slicing work, horizontal and vertical slicing.

Horizontal slicing

To explain this it’s easier to imagine a cake. A cake have different layers and when you slice horizontal you slicing where the layers are. Layers like Database, Server and Client are normal in software development. When using this method the focus is more on different technical boundaries and aspect. Slicing horizontal is a typical “Waterfall” method which mean that is hard to deliver early value to customers and stakeholders. When the database task is delivered it is often still unusable and doesn’t have a value for the customer or the stakeholders.

Vertical slicing

A modern and agile way to slice work is using the vertical approach. If we use the same example “the cake” this means that we are trying to find bite-sized pieces instead. When you serving cake to your guest you don’t first serve the bottom layer to your guest. You slice it vertical.

This approached is hard and demands more upfront design and work “not waterfall upfront” but you need to think in a different way. But if you succeed you are getting smaller and more manageable bite-sized work and are able to deliver value to the customers early in the process.

Different ways of vertical slice.

There are many different ways you can slice the cake. Here are some examples.

  1. Split in operations: Split bigger features in operations/actions the user can do.
  2. Split by roles: Often a feature involve many different roles and user groups. Find the user groups and split from that perspective.
  3. Acceptance criteria: Create acceptance criteria before the teams start to develop and try to slice it that way.
  4. Business value: Try to find the smallest part that have a value (MVP) and slice it that way.
  5. Slice by test case: Create test cases and slice a bigger feature to smaller task using test cases as a foundation. Then you also get testable code.
  6. Slice by workflow: Find most common workflows in the system and slice it so the team can deliver a whole workflow.
  7. Slice major task first: Do you need to focus on important task first? Why don’t slice feature focusing on critical task that needs to be done.

Elephant + Carpaccio is a great exercise in how to slice vertical.

Read more:

 

Thanks to Jimmy Janlén for letting me use his pictures from Agile Topics Cards.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s