www.dmagilecoaching.com
Vertical Slicing


patterns.
www.dmagilecoaching.com
www.dmagilecoaching.com
SPIDER Vertical Slicing
Start with a more simple version of that feature.
COMPONENT
COMPONENT
COMPONENT
COMPONENT
FEATURE
*Adapted from SPIDR (Mike Cohn)
www.dmagilecoaching.com
Spikes
A research activity that can give you the information needed to understand the size of a functionality.
We can use this strategy when we have no experience or understanding on how to build a particular feature, and getting the needed information presumably
requires a high degree of effort. This, can be due to the decision of including or trying out a new technology as well as to the lack of experience within a functional
area. A Spike is a defined amount of work dedicated to the investigation and a basic implementation of a solution needed to complete another feature
.

As a service provider


I want to get a notification in my iOs phone


So that I understand a reservation has been completed
Spike (Investigate how to send iOs notifications):


As a service provider


I want to get a notification in my iPhone 12


So that I understand a reservation has been completed
Spike
Defer error handling/logging Dummy then dynamic
* Even though we can’t call it Spikes, as a last resource, is also possible to defer the inclusion of specific
components in order to distribute complexity in different iterations
.

As a electric substation technician


I want to see the Voltage Monitoring Table of a substation


So that I can detect voltage violations
As a electric substation technician


I want to see a Dummy violation in Voltage Monitoring Table


So that I can visualize the severity and parameters
As a electric substation technician


I want to see the Voltage Monitoring Table of a substation


So that I can detect voltage violations
As a technician


I want to see the status of a network node


So that I can troubleshoot the device
As a technician


I want to know when a network node encountered errors


So that I can proactively troubleshoot network devices
As a technician


I want to see the logs of a network node


So that I can troubleshoot a faulty device
www.dmagilecoaching.com
Paths
A user can do something in multiple ways, or continue in different directions.
As an on-line shop customer


I want to complete and pay my order


So that I can get my food delivered
As an on-line shop customer


I want to complete my order


So that I can confirm the food to deliver
As an on-line shop customer


I want to pay with credit card


So that I can get my food delivered
Split conditions
As an on-line shop customer


I want to create an order


So that I can get my shoes delivered
As an on-line shop customer


I want to buy a pair of shoes


So that I can get them delivered
As an on-line shop customer


I want to save a pair of shoes


So that I can buy them later
Use Case variations
As an on-line shop customer


I want to add a pair of shoes to my shopping cart


So that I can include them in my order
As a category manager


I want to manage the products


So that I distribute the available stock
As a category manager


I want to create a product type


So that can start de distribution
As a category manager


I want to list the product types


So that can check product availability
Operations
As a category manager


I want to update a product type


So that I can change product details
As a category manager


I want to archive a product type


So that can stop distributing it
Actions
As a player


I want to operate my character


So that shoot & scape from other characters
As a player


I want mi character to shoot


So that I can damage other characters
As a player


I want mi character to change weapon


So that I can select my preferred weapon
As a player


I want mi character to walk


So that I can move my character
As a player


I want mi character to run & jump


So that I can move my character faster
www.dmagilecoaching.com
Interfaces
The user interaction and/or information displayed happens in different: browsers, hardware, level of complexity…
Zero, one, many Basic to advanced Mayor effort
As virtual card user


I want to see the cards linked to my account


So that I can verify their availability
As virtual card user


I want to see 0 cards linked to my account


So that I can verify no payments can be done
As virtual card user


I want to see 1 Visa card linked to my account


So that I can verify that I have a card available
As virtual card user


I want to see 2 Visa and 2 Mastercard Cards
linked to my account


So that I can verify I have 4 cards available
As an on-line shop customer


I want to see my past orders


So that I can repeat a previous order
As an on-line shop customer


I want to see the last order


So that I can repeat the last order
As an on-line shop customer


I want to see the last products bought


So that I can buy again some of the
product bought in the last 3 months
As an on-line shop customer


I want to see the last products bought
and the updated prices


So that I can buy again some good offers
bought in the last 3 months
As an on-line shop customer


I want to pay my order with credit card


So that my order is sent
As an on-line shop customer


I want to pay my order with VISA


So that my order is sent
As an on-line shop customer


I want to pay my order with AMEX , DC or MC


So that my order is sent
Interface variations
As a market analyst


I want to check the statistics for one product


So that I can define the strategy for next quarter
As a market analyst


I want to see a summary report


So that I can get a market overview
As a market analyst


I want to export statistic data to CSV


So that I can process data in MS Excel
As a market analyst


I want to export statistic data to PDF


So that I can send them by email
As a market analyst


I want to print a summary report


So that I can had it out in a meeting
www.dmagilecoaching.com
Data
Deliver value in different iterations by focusing in different data types or a sub-range of the relevant data.
Variations in Data
As a tourist


I want to see tourist information for this city


So that I can prepare my visit
As a tourist


I want to see museums information for this city


So that I can include museums in my visit
As a tourist


I want to see monuments information for this city


So that I can include monuments in my visit
As a tourist


I want to see restaurant information for this city


So that I can include restaurants in my visit
As a tourist


I want to see parks information for this city


So that I can include parks in my visit
Data Boundaries
As a tourist


I want to see a museum name and description


So that I can see if it’s interesting for me
As a tourist


I want to see a museum information


So that I can decide to include it in my visit
As a tourist


I want to see a museum address


So that I can see how far is it from my location
As a tourist


I want to see a museum schedule & availability


So that I can see if I can include it in my visit
As a tourist


I want to see a museum current expositions


So that I can see if it’s interesting for me
Transient then persistent
As a cinema viewer


I want to pay a ticket


So that I don’t need to wait in the line
As a As a cinema viewer


I want input my credit card details


So that I can pay a ticket
As a registered cinema viewer


I want my credit card details to be stored


So that I can purchase tickets directly
As a Bank customer


I want to request a mortgage


So that I can buy a new house
As a Bank customer


I want to Send my personal Data


So that the Bank can confirm my Identity
Workflow breakdown
As a Bank customer


I want to Send my financial Data


So that my creditworthiness is confirmed
As a Bank customer


I want to Send the property Data


So that the mortgage feasibility is studied
As a Bank customer


I want to Send my last tax declaration


So that my financials are verified
www.dmagilecoaching.com
Extensions
Extend system capabilities in further iterations.
Input validation
As a used car dealer


I want to input the vehicle data


So that I can close the sale
As a used car dealer


I want the licence plate to be verified


So that I correctly register the vehicle
As a used car dealer


I want the buyer’s ID number to be verified


So that I ensure there are no legal issues
As a used car dealer


I want the frame number to be verified


So that I correctly register the vehicle
As a used car dealer


I want the buyer’s driving license verified


So that I correctly register the vehicle
System qualities Manual/Automated
Low/high fidelity
As a bank customer


I want to see my overall position


So that I have an overview of my products
As a bank customer


I want to see my overall position


So that I have an overview of my products
As a bank customer


I want to see my overall position in an iPhone
12 within 3 seconds and with no scroll


So that I have an overview of my products
As a bank customer


I want to see my transactions


So that I have an overview of my expenses
As a bank customer


I want to see a list of transactions


So that I have an overview of my expenses
As a bank customer


I want to see my transactions in columns by type


So that I have structured view of my expenses
As a bank customer


I want to see a categorized list of transactions


So that I have an view of my expenses by type
As a pharmacist


I want to get a package of Aspirin


So that I can sell it to a customer
As a pharmacist


I want to get the storage location of Aspirin


So that I can find and sell it to a customer
As a pharmacist


I want to the robot to find & deliver Aspirin


So that I can sell it to a customer
www.dmagilecoaching.com
Rules
Support different business rules in different iterations.
Platform options Roles
Business Rules
As an investor with configured price checks


I want to receive notifications


So that I’m updated about relevant changes
As an investor with configured price checks


I want to receive notifications in my iPhone


So that I’m updated on the go
As an investor with configured price checks


I want to receive notifications in my Android dev.


So that I’m updated on the go
As an investor with configured price checks


I want to receive notifications in my Desktop


So that I’m updated while working
As an investor with configured price checks


I want to receive notifications in my iPad


So that I’m updated while reading the news
As a policy holder


I want to issue a claim


So that I can get my car repaired
As a policy holder


I want to issue a claim under 200EUR


So that I can get a refund
As a policy holder


I want to issue a claim over 200EUR


So that the insurance expert can evaluate
the damage
As an operator


I want see a customer’s insurance policy


So that I can understand the policy details
As an insurance Broker


I want see a customer’s insurance policy


So that I can understand the conditions
As an insurance Agent


I want see a customer’s insurance policy


So that I can understand the prices
As an insurance Underwriter


I want see a customer’s insurance policy


So that I can analyse the risks
As an insurance Claimant


I want see a customer’s insurance policy


So that I can analyse the exclusions
Acceptance criteria
As a bank customer


I want to request a 50k loan


So that I can buy a used car
As a customer with pre-approved credit


I want to activate my 50k loan


So that I can buy a used car
As a customer with no pre-approved credit


I want to be informed about the process


So that I can request a 50k loan
As a customer with debt risk


I want to be informed of my debts


So that I don’t request a loan
www.dmagilecoaching.com
Examples of incorrect Vertical Slicing
www.dmagilecoaching.com
www.dmagilecoaching.com
What is NOT Vertical Slicing
Dividing by components, task, responsibilities or any kind non deliverable pieces of work.
COMPONENT
COMPONENT
COMPONENT
COMPONENT
As an on-line shop customer


I want to complete and pay my order


So that I can get my food delivered
Input payment data
Steps
Payment denied
Validate credit card information
Send request to payment gateway
Verify response to payment gateway
Confirm payment
Update shopping cart
Issue order
As an on-line shop customer


I want to complete and pay my order


So that I can get my food delivered
Create the payment form
Tasks
Create declined payment view
Create validation helper
Create payment gateway interface
Empty shopping cart
Save new order
Create payment service
As an on-line shop customer


I want to complete and pay my order


So that I can get my food delivered
Front-end Development
Responsibilities
Back end Development
Integration
Testing
Deployment
Create confirmed payment view
As an on-line shop customer


I want to complete and pay my order


So that I can get my food delivered
Data entry view
Components
Payment response view
Validation helper
Payment gateway interface
Shopping cart
Data access / ORM
DDBB
FEATURE
Acceptance test
Create automated test
Payment service
contact@angeldiazmaroto.com | www.dmagilecoaching.com

Vertical slicing patterns

  • 1.
  • 2.
    www.dmagilecoaching.com www.dmagilecoaching.com SPIDER Vertical Slicing Startwith a more simple version of that feature. COMPONENT COMPONENT COMPONENT COMPONENT FEATURE *Adapted from SPIDR (Mike Cohn)
  • 3.
    www.dmagilecoaching.com Spikes A research activitythat can give you the information needed to understand the size of a functionality. We can use this strategy when we have no experience or understanding on how to build a particular feature, and getting the needed information presumably requires a high degree of effort. This, can be due to the decision of including or trying out a new technology as well as to the lack of experience within a functional area. A Spike is a defined amount of work dedicated to the investigation and a basic implementation of a solution needed to complete another feature . As a service provider I want to get a notification in my iOs phone So that I understand a reservation has been completed Spike (Investigate how to send iOs notifications): As a service provider I want to get a notification in my iPhone 12 So that I understand a reservation has been completed Spike Defer error handling/logging Dummy then dynamic * Even though we can’t call it Spikes, as a last resource, is also possible to defer the inclusion of specific components in order to distribute complexity in different iterations . As a electric substation technician I want to see the Voltage Monitoring Table of a substation So that I can detect voltage violations As a electric substation technician I want to see a Dummy violation in Voltage Monitoring Table So that I can visualize the severity and parameters As a electric substation technician I want to see the Voltage Monitoring Table of a substation So that I can detect voltage violations As a technician I want to see the status of a network node So that I can troubleshoot the device As a technician I want to know when a network node encountered errors So that I can proactively troubleshoot network devices As a technician I want to see the logs of a network node So that I can troubleshoot a faulty device
  • 4.
    www.dmagilecoaching.com Paths A user cando something in multiple ways, or continue in different directions. As an on-line shop customer I want to complete and pay my order So that I can get my food delivered As an on-line shop customer I want to complete my order So that I can confirm the food to deliver As an on-line shop customer I want to pay with credit card So that I can get my food delivered Split conditions As an on-line shop customer I want to create an order So that I can get my shoes delivered As an on-line shop customer I want to buy a pair of shoes So that I can get them delivered As an on-line shop customer I want to save a pair of shoes So that I can buy them later Use Case variations As an on-line shop customer I want to add a pair of shoes to my shopping cart So that I can include them in my order As a category manager I want to manage the products So that I distribute the available stock As a category manager I want to create a product type So that can start de distribution As a category manager I want to list the product types So that can check product availability Operations As a category manager I want to update a product type So that I can change product details As a category manager I want to archive a product type So that can stop distributing it Actions As a player I want to operate my character So that shoot & scape from other characters As a player I want mi character to shoot So that I can damage other characters As a player I want mi character to change weapon So that I can select my preferred weapon As a player I want mi character to walk So that I can move my character As a player I want mi character to run & jump So that I can move my character faster
  • 5.
    www.dmagilecoaching.com Interfaces The user interactionand/or information displayed happens in different: browsers, hardware, level of complexity… Zero, one, many Basic to advanced Mayor effort As virtual card user I want to see the cards linked to my account So that I can verify their availability As virtual card user I want to see 0 cards linked to my account So that I can verify no payments can be done As virtual card user I want to see 1 Visa card linked to my account So that I can verify that I have a card available As virtual card user I want to see 2 Visa and 2 Mastercard Cards linked to my account So that I can verify I have 4 cards available As an on-line shop customer I want to see my past orders So that I can repeat a previous order As an on-line shop customer I want to see the last order So that I can repeat the last order As an on-line shop customer I want to see the last products bought So that I can buy again some of the product bought in the last 3 months As an on-line shop customer I want to see the last products bought and the updated prices So that I can buy again some good offers bought in the last 3 months As an on-line shop customer I want to pay my order with credit card So that my order is sent As an on-line shop customer I want to pay my order with VISA So that my order is sent As an on-line shop customer I want to pay my order with AMEX , DC or MC So that my order is sent Interface variations As a market analyst I want to check the statistics for one product So that I can define the strategy for next quarter As a market analyst I want to see a summary report So that I can get a market overview As a market analyst I want to export statistic data to CSV So that I can process data in MS Excel As a market analyst I want to export statistic data to PDF So that I can send them by email As a market analyst I want to print a summary report So that I can had it out in a meeting
  • 6.
    www.dmagilecoaching.com Data Deliver value indifferent iterations by focusing in different data types or a sub-range of the relevant data. Variations in Data As a tourist I want to see tourist information for this city So that I can prepare my visit As a tourist I want to see museums information for this city So that I can include museums in my visit As a tourist I want to see monuments information for this city So that I can include monuments in my visit As a tourist I want to see restaurant information for this city So that I can include restaurants in my visit As a tourist I want to see parks information for this city So that I can include parks in my visit Data Boundaries As a tourist I want to see a museum name and description So that I can see if it’s interesting for me As a tourist I want to see a museum information So that I can decide to include it in my visit As a tourist I want to see a museum address So that I can see how far is it from my location As a tourist I want to see a museum schedule & availability So that I can see if I can include it in my visit As a tourist I want to see a museum current expositions So that I can see if it’s interesting for me Transient then persistent As a cinema viewer I want to pay a ticket So that I don’t need to wait in the line As a As a cinema viewer I want input my credit card details So that I can pay a ticket As a registered cinema viewer I want my credit card details to be stored So that I can purchase tickets directly As a Bank customer I want to request a mortgage So that I can buy a new house As a Bank customer I want to Send my personal Data So that the Bank can confirm my Identity Workflow breakdown As a Bank customer I want to Send my financial Data So that my creditworthiness is confirmed As a Bank customer I want to Send the property Data So that the mortgage feasibility is studied As a Bank customer I want to Send my last tax declaration So that my financials are verified
  • 7.
    www.dmagilecoaching.com Extensions Extend system capabilitiesin further iterations. Input validation As a used car dealer I want to input the vehicle data So that I can close the sale As a used car dealer I want the licence plate to be verified So that I correctly register the vehicle As a used car dealer I want the buyer’s ID number to be verified So that I ensure there are no legal issues As a used car dealer I want the frame number to be verified So that I correctly register the vehicle As a used car dealer I want the buyer’s driving license verified So that I correctly register the vehicle System qualities Manual/Automated Low/high fidelity As a bank customer I want to see my overall position So that I have an overview of my products As a bank customer I want to see my overall position So that I have an overview of my products As a bank customer I want to see my overall position in an iPhone 12 within 3 seconds and with no scroll So that I have an overview of my products As a bank customer I want to see my transactions So that I have an overview of my expenses As a bank customer I want to see a list of transactions So that I have an overview of my expenses As a bank customer I want to see my transactions in columns by type So that I have structured view of my expenses As a bank customer I want to see a categorized list of transactions So that I have an view of my expenses by type As a pharmacist I want to get a package of Aspirin So that I can sell it to a customer As a pharmacist I want to get the storage location of Aspirin So that I can find and sell it to a customer As a pharmacist I want to the robot to find & deliver Aspirin So that I can sell it to a customer
  • 8.
    www.dmagilecoaching.com Rules Support different businessrules in different iterations. Platform options Roles Business Rules As an investor with configured price checks I want to receive notifications So that I’m updated about relevant changes As an investor with configured price checks I want to receive notifications in my iPhone So that I’m updated on the go As an investor with configured price checks I want to receive notifications in my Android dev. So that I’m updated on the go As an investor with configured price checks I want to receive notifications in my Desktop So that I’m updated while working As an investor with configured price checks I want to receive notifications in my iPad So that I’m updated while reading the news As a policy holder I want to issue a claim So that I can get my car repaired As a policy holder I want to issue a claim under 200EUR So that I can get a refund As a policy holder I want to issue a claim over 200EUR So that the insurance expert can evaluate the damage As an operator I want see a customer’s insurance policy So that I can understand the policy details As an insurance Broker I want see a customer’s insurance policy So that I can understand the conditions As an insurance Agent I want see a customer’s insurance policy So that I can understand the prices As an insurance Underwriter I want see a customer’s insurance policy So that I can analyse the risks As an insurance Claimant I want see a customer’s insurance policy So that I can analyse the exclusions Acceptance criteria As a bank customer I want to request a 50k loan So that I can buy a used car As a customer with pre-approved credit I want to activate my 50k loan So that I can buy a used car As a customer with no pre-approved credit I want to be informed about the process So that I can request a 50k loan As a customer with debt risk I want to be informed of my debts So that I don’t request a loan
  • 9.
  • 10.
    www.dmagilecoaching.com www.dmagilecoaching.com What is NOTVertical Slicing Dividing by components, task, responsibilities or any kind non deliverable pieces of work. COMPONENT COMPONENT COMPONENT COMPONENT As an on-line shop customer I want to complete and pay my order So that I can get my food delivered Input payment data Steps Payment denied Validate credit card information Send request to payment gateway Verify response to payment gateway Confirm payment Update shopping cart Issue order As an on-line shop customer I want to complete and pay my order So that I can get my food delivered Create the payment form Tasks Create declined payment view Create validation helper Create payment gateway interface Empty shopping cart Save new order Create payment service As an on-line shop customer I want to complete and pay my order So that I can get my food delivered Front-end Development Responsibilities Back end Development Integration Testing Deployment Create confirmed payment view As an on-line shop customer I want to complete and pay my order So that I can get my food delivered Data entry view Components Payment response view Validation helper Payment gateway interface Shopping cart Data access / ORM DDBB FEATURE Acceptance test Create automated test Payment service
  • 11.