Learn how to divide work using the "vertical slicing" strategy.
This is particularly useful for Scrum teams to split backlog items allowing iterative and incremental product delivery.
3. 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
4. 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
5. 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
6. 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
7. 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
8. 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
10. 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