Hamburger Method for User Stories

Hamburger Method: A Simple Way for Teams to Vertically Split User Stories

Hamburger Method: A Simple Way for Teams to Vertically Split User Stories

Many teams struggle to split large user stories into small stories in a useful way, especially less experienced teams.

Instead of ending up with small vertical slices that bring real business value, they get stories that look more like tasks or architectural components and fail to experience the value or feedback that small stories should provide.

Or they end up not splitting the story, often working on it for 2-3 sprints.

Gojko Adzic built upon this technical mindset to create the Hamburger Method. A simple five-step process helps less experienced teams split stories that deliver business value based on technical workflow.

Adzic’s Hamburger Method is an excellent way for less experienced teams to vertically split stories.

Step 1 – Identify the Layers or Tasks

Step 2 – Identify Options for each Task

Step 3 – Sort the Options

Step 4 – First Bite (write the first User Story)

Step 5 – Finish the Hamburger


Step 1 – Identify the Layers or Tasks

  • Hamburger Story Splitting Model
  • Hamburger Model Layer 2
  • Hamburger Model Layer 3

Querying the database (Query DB) when a saved expense report is pulled from the expense report database:

– Batch Query.

An input screen (Input Screen) to review the expense report and add notes:

– Error Checking.

An input screen (Input Screen)to review the expense report and add notes:

– Print Option.

Saving to the database (Save to DB)the notes made upon finishing the expense report review:

– Optimize the Data.

Querying the database (Query DB)when a saved expense report is pulled from the expense report database:

– Live Query.

List the layers of tasks that will make up our hamburger; each layer should represent a technical step or task in the workflow of the completed story. List the layers (tasks) on the left side of the dotted line, each on a different layer.

Original Story:

As the accounts-payable auditor, I want to review expense reports online for errors and omissions so that I can speed up the processing time for expense reports.

The process will involve pulling a saved expense report from the expense report database, reviewing it, making notes, and saving the expense report and notes.

Converts into three technical layers:

1. Querying the database (Query DB) when a saved expense report is pulled from the expense report database

2. An input screen (Input Screen) to review the expense report and add notes

3. Saving to the database (Save to DB) the notes made upon reviewing the expense report review.


Step 2 – Identify Options for each Task


List the options for each task to the right of the dotted line on the appropriate layer. It is usually best to use small post-it notes so that you can move them around.

The options may include no option, mocks data, hardcoded, some basic option, and a richer option.

Original Story:

As the accounts-payable auditor, I want to review expense reports online for errors and omissions so that I can speed up the processing time for expense reports.

Split each of the three technical layers into various options:

1. Querying the database (Query DB) when a saved expense report is pulled from the expense report database:

– Use Dummy Data if the expense reports are not yet available.

– Use Batch Query process to get batches of data each night if there is no interface to the expense report databases.

– Create an interface to the expense report databases and then use a Live Query to get the expense report data from the expense report databases in real-time.

2. An input screen (Input Screen) to review the expense report and add notes:

– Create a Simple Screen that displays the expense report data, a note field, a save button, and a next button.

– Create a Print Option to print questionable expense reports.

– Create a more advanced screen that does Error Checking upon hitting the save button.

3. Saving to the Database (Save to DB) the notes made upon finishing the expense report review:

– Save to the Database the expense report notes upon hitting the saved button, but do not spend time optimizing the data saved.

– Optimize the Data to have a professional look by addressing extra spaces, non-alpha-numeric characters, and capitalization so that the data can quickly be accessed in the future.

– Don’t Save anything upon reviewing an expense report with the initial process.

Step 3 – Sort the Options

Sort the options for each task from left to right based on the value that the option delivers to the client, with the option offering the least value first and the option offering the greatest value last.

Remove unnecessary and duplicated options.

Then remove any option with a relatively equal or lesser effort cost, with the options to its right. 

Remove options of equal or lesser effort cost:

1. Querying the database (Query DB) when a saved expense report is pulled from the expense report database:

The Dummy Data option brings less value than the Live Query option or the Batch Query option, so move the Dummy Data option to the far left before the Batch Query.

The options are in order.  

The options bring additional value as they move to the right.

– Dummy Data will deliver the lowest quality or value.

– Batch Query will deliver the second-lowest quality or value.

– Live Query will deliver the highest quality or value.

2. An input screen (Input Screen) to review the expense report and add notes:

These options are already in value order, with each option bringing more value than the ones to its left:

– Simple Screen

– Error Checking

– Print Option

3. Saving to the database (Save to DB) the notes made upon finishing the expense report review:

The Don’t Save option will bring less quality or value than the Save to the Database option, so move the Don’t Save option to the left of the Save to the Database option. The Save to the database option cost is about the same as the Don’t Save option cost so remove the Don’t Save option.

– Don’t Save

– Save to the Database.

– Optimize the Data

Step 4 – First Bite (write the first User Story)

Choose one and only one option from each task, usually the one on the far left, the option that delivers the least value, so that the first story gets a little of everything.  This will ensure that the story delivers some value while being small.

Note: Choose “no option” if the story will bring value without an option under one or more of the tasks.

The Original Story:

As the accounts-payable auditor, I want to review expense reports online for errors and omissions so that I can speed up the processing time for expensive reports.

Breaks down the original so that the first story will include:

1. Querying the database (Query DB) when a saved expense report is pulled from the expense report database:

– Dummy Data will deliver the lowest quality or value.

2. An input screen (Input Screen) to review the expense report and add notes:

– Simple Screen.

3. Saving to the database (Save to DB) the notes made upon finishing the expense report review:

– Save to the Database.

The First Story will be:

As the accounts-payable auditor I want a mock up the screen that will review expense reports online for errors and omissions so that I can make sure that the screen and end-to-end process is what I need.

Step 5 – Finish the Hamburger

Take bites one at a time until you finish the whole hamburger because you have already delivered value to the customer.  Future bites do not need to include tasks from all levels.  Your bites will build on the previous bite(s) by enhancing them.

To finish the hamburger, I will create the following three user stories:

The second bite will include the batch processing and error handling, as they are related and are inter-depended:

The Second Story will be:

As the accounts-payable auditor, I want to review expense reports batches online for errors and omissions so that I can speed up the processing time for expensive reports by eliminating the need to have physical expense reports sent to my location.

The third bite will include the ability to print expense reports and optimize the data as they are related and are inter-depended:

The Third Story will be:

As the accounts-payable auditor, I want the ability to print expense reports with my notes so that I can have a physical copy of questionable expense reports without waiting for the actual expense reports to share with others.

The fourth and final bite will be the ability to process expense reports in real-time:

The Fourth Story will be:

As the accounts-payable auditor, I want to access expense reports in real-time so that I can increase the processing time of expensive reports to the same day that they are created.

Are you struggling to split user stories into smaller, valuable vertical slices? Try the Hamburger Method and see how it can help your team deliver real business value.