SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
How Thin is Thin?
Effective Story Slicing
Gatineau-Ottawa Agile Tour
November 21, 2016
1
How Thin is Thin? Effective Story Slicing
Who is this guy?
2
•Software Development Manager
at You.i TV
•Recovering Developer & Agilist,
but frequently falls off the wagon
•Coding since C wasn’t even a
teenager yet and Java was
something you drank
•Part of the Agile community for
this entire century
How Thin is Thin? Effective Story Slicing
But enough about me! Who are you?
3
• Product Managers?
• Product Owners?
• Business Analysts?
• ScrumMasters?
• Developers?
• QA?
• UX?
• Architects?
• Management?
• ???
How Thin is Thin? Effective Story Slicing
4
Why Use Small Stories?
• Better flow
• Better focus
• Reduced risk
• Improved visibility
How Thin is Thin? Effective Story Slicing
5
Why Small?
How Thin is Thin? Effective Story Slicing
6
So What Does Thin Mean?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Just enough functionality to provide
value to the Product Owner
• The Team can easily identify what has
to be done to deliver the story
How Thin is Thin? Effective Story Slicing
7
DatabaseRemote API
What About non-Web Systems? There’s no difference!
User Interface
Business Logic
Database
Story
User Interface
Business Logic
Story
API Gateway
Business Logic
Story
How Thin is Thin? Effective Story Slicing
8
A “Real World” Example - The Point of Sale (POS) System
•Client was building a web-based POS
system for salespeople taking orders in
the field
•The orders would be stored in the POS
database, but they would also be sent to
the Oracle back-end eBusiness Suite
•Customer and Product data would come
from the Oracle eBusiness Suite
How Thin is Thin? Effective Story Slicing
9
The First Story
• Used Personas and Story Mapping to identify how
the system would support the work of the
salespeople
• The Product Owner determined that the most
fundamental aspect of the system was to create
orders
How Thin is Thin? Effective Story Slicing
10
The First Story
TOO BIG!
• Used Personas and Story Mapping to identify how
the system would support the work of the
salespeople
• The Product Owner determined that the most
fundamental aspect of the system was to create
orders
So what do we really need?
How Thin is Thin? Effective Story Slicing
12
For the first Story...
How Thin is Thin? Effective Story Slicing
13
For the first Story...
• Didn’t create tables for the Customer or
Product
• Used hard-coded values for both
• No validation of those values
• Simple web page with “Create Order” button
• Second page to show that the order was
created (could have even been validated with
an SQL query!)
How Thin is Thin? Effective Story Slicing
14
Was This Story “Thin”?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Required work in all layers and created
the foundation for all later stories
• Just enough functionality to provide value
to the Product Owner
• An Order was created
• The Team can easily identify what has to be
done to deliver the story
• Very small, easily verified
How Thin is Thin? Effective Story Slicing
15
The Next Story...
How Thin is Thin? Effective Story Slicing
16
The Next Story...
• Still using a hard-coded value for the Product
• Customer ID is entered manually
• Still no validation of those values
• Web page now has a text field for the
Customer ID as well as“Create Order” button
• Second page to show that the order was
created (could have even been validated with
an SQL query!)
How Thin is Thin? Effective Story Slicing
17
Still “Thin”?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Just enough functionality to provide value
to the Product Owner
• An Order was created with the
specified Customer ID
• The Team can easily identify what has to be
done to deliver the story
• Very small, easily verified
How Thin is Thin? Effective Story Slicing
18
The Next Next Story...
How Thin is Thin? Effective Story Slicing
19
The Next Next Story...
• Still using a hard-coded value for the Product
• Customer is selected from a list of valid customers,
but hard-coded into the page
• No validation of the product, but the customer will be
valid
• Web page now has a drop-down list for the Customer
as well as the “Create Order” button
• Second page to show that the order was created
(could have even been validated with an SQL query!)
How Thin is Thin? Effective Story Slicing
20
Are we still “Thin”?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Just enough functionality to provide value
to the Product Owner
• An Order was created with the
selected Customer ID
• The Team can easily identify what has to be
done to deliver the story
• Very small, easily verified
How Thin is Thin? Effective Story Slicing
21
The Stories Continue...
How Thin is Thin? Effective Story Slicing
22
The Stories Continue...
• The Product ID is entered in a text field
• Customer is selected from a list of valid customers,
but hard-coded into the page
• No validation of the product, but the customer will be
valid
• Web page now has a drop-down list for the
Customer, a text field for the Product and a “Create
Order” button
• Second page to show that the order was created
How Thin is Thin? Effective Story Slicing
23
Are we still “Thin”?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Required work in all layers and created
the foundation for all later stories
• Just enough functionality to provide value
to the Product Owner
• An Order was created with the
selected Customer ID and a Line Item
was added for the Product ID entered
• The Team can easily identify what has to be
done to deliver the story
• Very small, easily verified
How Thin is Thin? Effective Story Slicing
24
Let’s Skip Ahead A Bit…
How Thin is Thin? Effective Story Slicing
25
Let’s Skip Ahead A Bit…
• We can now enter multiple Products selected from a
list, hard-coded into the page
• Customer is selected from a list of valid customers,
but hard-coded into the page
• Both the product and customer will be valid
• Web page now has a drop-down list for the
Customer, multiple drop-down lists for the Products
and a “Create Order” button
• Second page to show that the order was created
How Thin is Thin? Effective Story Slicing
26
Are we still “Thin”?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Required work in all layers and created
the foundation for all later stories
• Just enough functionality to provide value
to the Product Owner
• An Order was created with the
selected Customer ID and Line Items
were created for each of the Products
• The Team can easily identify what has to be
done to deliver the story
• Very small, easily verified
How Thin is Thin? Effective Story Slicing
27
Ahead even further…
How Thin is Thin? Effective Story Slicing
28
Ahead even further…
• Both stories use the back-end Product and Customer
services to fill the drop-down lists
• The lists are valid as of the time the page is rendered
since they’re using the most up to date data
• The page is now a classic master/detail view with line
items for the products
How Thin is Thin? Effective Story Slicing
29
Are we still “Thin”?
User Interface
Web Server
Application Server
Business Logic
Database
Story
• A single “slice” through all layers of a
system
• Just enough functionality to provide value
to the Product Owner
• An Order was created using valid
Customers and Products from the
back-end services
• The Team can easily identify what has to be
done to deliver the story
• Very small, easily verified
How Thin is Thin? Effective Story Slicing
30
All of that from One Story!
• We built out Create Order using many small, valuable
slices
• Each one delivered value
• Each one further reduced risk
• Each one was tested:
• JUnit microtests at the code level
• Cucumber scenarios at the story level
• Each one allowed incremental delivery of the system
architecture
How Thin is Thin? Effective Story Slicing
So what did we just see?
• We used hard-coded values to simplify by excluding any
processing of user data entry
• A simple UI was used that was barely sufficient to support the
stories
• No validation of data entered before it was really required
• A story that had no “child” records was followed by a story with
one child then a story with many children
• Although the final system would have an interface with the
Oracle back-end services, we deferred using that interface until
it was necessary
31
How Thin is Thin? Effective Story Slicing
32
Story Splitting Patterns
• Hard coding values;
• Simple interface;
• Defer validation;
• Zero, then One, then Many (with the Products);
• Defer complexity (with the back-end Services).
How Thin is Thin? Effective Story Slicing
Exercise: The Digital Personal Video Recorder (PVR)
33
•Process:
•Break out into groups of 6-10 (e.g. your table)
•Don’t worry about hardware details, focus on the stories about
someone will use the PVR
•Brainstorm the high-level functionality that should exist
•Brainstorm the stories that will deliver that functionality iteratively and
incrementally
How Thin is Thin? Effective Story Slicing
• The system downloads program information over Ethernet.
• The user can configure the following:
• Maximum number of episodes to record
• Finding the same show on other channels
• Time to keep the episodes before automatically deleting them
• Record only new or new and repeat episodes
• Shows can be rated when watched. This information is anonymously fed to an online
service that tracks ratings.
• The system makes recommendations based on what you like compared to what other
people like (all anonymously).
• The system integrates with social media like FaceBook, Twitter, etc.
Exercise: The Digital Personal Video Recorder (PVR)
34
How Thin is Thin? Effective Story Slicing
Resources & Further Reading
• Story Splitting Patterns
• User Stories - An Agile Introduction
• How to Enable Estimate-Free Development
• It’s Just a Feature-for-Feature Port
35
• Questions about the session? Contact me at dave@daverooney.ca
• Interested in changing the world of video? We’re hiring at You.i TV!

Contenu connexe

En vedette

Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user storiesPayton Consulting
 
Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How ToPayton Consulting
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Storieskahgeh75
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainNaresh Jain
 
Liftoff - how to launch Agile teams and projects
Liftoff - how to launch Agile teams and projectsLiftoff - how to launch Agile teams and projects
Liftoff - how to launch Agile teams and projectsFabio Armani
 
Agile Team Working Agreements
Agile Team Working AgreementsAgile Team Working Agreements
Agile Team Working AgreementsPayton Consulting
 

En vedette (7)

Epics and User Stories
Epics and User StoriesEpics and User Stories
Epics and User Stories
 
Cheat Sheet: 8 ways to split your user stories
Cheat Sheet:  8 ways to split your user storiesCheat Sheet:  8 ways to split your user stories
Cheat Sheet: 8 ways to split your user stories
 
Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How To
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Stories
 
Techniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh JainTechniques for Effectively Slicing User Stories by Naresh Jain
Techniques for Effectively Slicing User Stories by Naresh Jain
 
Liftoff - how to launch Agile teams and projects
Liftoff - how to launch Agile teams and projectsLiftoff - how to launch Agile teams and projects
Liftoff - how to launch Agile teams and projects
 
Agile Team Working Agreements
Agile Team Working AgreementsAgile Team Working Agreements
Agile Team Working Agreements
 

Similaire à How Thin is Thin? Effective User Story Slicing

What do making cars and writing software have in common?
What do making cars and writing software have in common?What do making cars and writing software have in common?
What do making cars and writing software have in common?PayPerks
 
Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019
Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019
Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019Niels Basjes
 
When ordering Matters - Flink Forward EU - Berlin - 2019
When ordering Matters - Flink Forward EU - Berlin - 2019 When ordering Matters - Flink Forward EU - Berlin - 2019
When ordering Matters - Flink Forward EU - Berlin - 2019 Niels Basjes
 
Service-Oriented Architecture
Service-Oriented ArchitectureService-Oriented Architecture
Service-Oriented ArchitectureSamantha Geitz
 
Turn On The Lights
Turn On The LightsTurn On The Lights
Turn On The LightsPostman
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino DogsMark Myers
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps StartupsDaniel Zivkovic
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Josiah Renaudin
 
Customer-centric Metrics
Customer-centric MetricsCustomer-centric Metrics
Customer-centric MetricsMark McBride
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network AutomationAndy Davidson
 
Building High Scale Systems Using Serverless Architecture for a Burning Man E...
Building High Scale Systems Using Serverless Architecture for a Burning Man E...Building High Scale Systems Using Serverless Architecture for a Burning Man E...
Building High Scale Systems Using Serverless Architecture for a Burning Man E...DevOpsDays Tel Aviv
 
Power to the People: A Stack to Empower Every User to Make Data-Driven Decisions
Power to the People: A Stack to Empower Every User to Make Data-Driven DecisionsPower to the People: A Stack to Empower Every User to Make Data-Driven Decisions
Power to the People: A Stack to Empower Every User to Make Data-Driven DecisionsLooker
 
26 story slicing techniques for any scrum team
26 story slicing techniques for any scrum team26 story slicing techniques for any scrum team
26 story slicing techniques for any scrum teamagilebin
 
The Future of ETL Isn't What It Used to Be
The Future of ETL Isn't What It Used to BeThe Future of ETL Isn't What It Used to Be
The Future of ETL Isn't What It Used to Beconfluent
 
Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...
Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...
Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...Precisely
 
Sencha Auckland Conference (SenchaCon) AdvanceRetail Presentation
Sencha Auckland Conference (SenchaCon) AdvanceRetail PresentationSencha Auckland Conference (SenchaCon) AdvanceRetail Presentation
Sencha Auckland Conference (SenchaCon) AdvanceRetail PresentationAndrew Bell
 
How to work with developers
How to work with developersHow to work with developers
How to work with developersPascal Auberson
 
Event Driven Architectures - Net Conf UY 2018
Event Driven Architectures - Net Conf UY 2018Event Driven Architectures - Net Conf UY 2018
Event Driven Architectures - Net Conf UY 2018Bradley Irby
 

Similaire à How Thin is Thin? Effective User Story Slicing (20)

What do making cars and writing software have in common?
What do making cars and writing software have in common?What do making cars and writing software have in common?
What do making cars and writing software have in common?
 
Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019
Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019
Measuring 2.0 - How to handle 100K events/sec - Berlin Buzzwords 2019
 
Gateway to Agile: Agile Requirements
Gateway to Agile: Agile Requirements Gateway to Agile: Agile Requirements
Gateway to Agile: Agile Requirements
 
When ordering Matters - Flink Forward EU - Berlin - 2019
When ordering Matters - Flink Forward EU - Berlin - 2019 When ordering Matters - Flink Forward EU - Berlin - 2019
When ordering Matters - Flink Forward EU - Berlin - 2019
 
Service-Oriented Architecture
Service-Oriented ArchitectureService-Oriented Architecture
Service-Oriented Architecture
 
Turn On The Lights
Turn On The LightsTurn On The Lights
Turn On The Lights
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino Dogs
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
Can Your Mobile Infrastructure Survive 1 Million Concurrent Users?
 
Customer-centric Metrics
Customer-centric MetricsCustomer-centric Metrics
Customer-centric Metrics
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network Automation
 
Building High Scale Systems Using Serverless Architecture for a Burning Man E...
Building High Scale Systems Using Serverless Architecture for a Burning Man E...Building High Scale Systems Using Serverless Architecture for a Burning Man E...
Building High Scale Systems Using Serverless Architecture for a Burning Man E...
 
Power to the People: A Stack to Empower Every User to Make Data-Driven Decisions
Power to the People: A Stack to Empower Every User to Make Data-Driven DecisionsPower to the People: A Stack to Empower Every User to Make Data-Driven Decisions
Power to the People: A Stack to Empower Every User to Make Data-Driven Decisions
 
26 story slicing techniques for any scrum team
26 story slicing techniques for any scrum team26 story slicing techniques for any scrum team
26 story slicing techniques for any scrum team
 
The Future of ETL Isn't What It Used to Be
The Future of ETL Isn't What It Used to BeThe Future of ETL Isn't What It Used to Be
The Future of ETL Isn't What It Used to Be
 
Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...
Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...
Learnings from 7 Years of Integrating Mission-Critical IBM Z® and IBM i with ...
 
Sencha Auckland Conference (SenchaCon) AdvanceRetail Presentation
Sencha Auckland Conference (SenchaCon) AdvanceRetail PresentationSencha Auckland Conference (SenchaCon) AdvanceRetail Presentation
Sencha Auckland Conference (SenchaCon) AdvanceRetail Presentation
 
How to work with developers
How to work with developersHow to work with developers
How to work with developers
 
Event Driven Architectures - Net Conf UY 2018
Event Driven Architectures - Net Conf UY 2018Event Driven Architectures - Net Conf UY 2018
Event Driven Architectures - Net Conf UY 2018
 
Online shopping system.pptx
Online shopping system.pptxOnline shopping system.pptx
Online shopping system.pptx
 

Plus de Dave Rooney

#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)
#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)
#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)Dave Rooney
 
#NoProcesses - Doing More by Doing Less
#NoProcesses - Doing More by Doing Less#NoProcesses - Doing More by Doing Less
#NoProcesses - Doing More by Doing LessDave Rooney
 
GOAT 2015 - Digging to the Roots
GOAT 2015 - Digging to the RootsGOAT 2015 - Digging to the Roots
GOAT 2015 - Digging to the RootsDave Rooney
 
From the Ashes of Phoenix - GOAT 2018
From the Ashes of Phoenix - GOAT 2018From the Ashes of Phoenix - GOAT 2018
From the Ashes of Phoenix - GOAT 2018Dave Rooney
 
From the Ashes of Phoenix - PrDeliver 2018
From the Ashes of Phoenix - PrDeliver 2018From the Ashes of Phoenix - PrDeliver 2018
From the Ashes of Phoenix - PrDeliver 2018Dave Rooney
 
Confessions of a Flow Junkie
Confessions of a Flow JunkieConfessions of a Flow Junkie
Confessions of a Flow JunkieDave Rooney
 

Plus de Dave Rooney (6)

#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)
#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)
#NoBigProcesses - Getting More Done by Doing Less (PrDC Deliver 2019)
 
#NoProcesses - Doing More by Doing Less
#NoProcesses - Doing More by Doing Less#NoProcesses - Doing More by Doing Less
#NoProcesses - Doing More by Doing Less
 
GOAT 2015 - Digging to the Roots
GOAT 2015 - Digging to the RootsGOAT 2015 - Digging to the Roots
GOAT 2015 - Digging to the Roots
 
From the Ashes of Phoenix - GOAT 2018
From the Ashes of Phoenix - GOAT 2018From the Ashes of Phoenix - GOAT 2018
From the Ashes of Phoenix - GOAT 2018
 
From the Ashes of Phoenix - PrDeliver 2018
From the Ashes of Phoenix - PrDeliver 2018From the Ashes of Phoenix - PrDeliver 2018
From the Ashes of Phoenix - PrDeliver 2018
 
Confessions of a Flow Junkie
Confessions of a Flow JunkieConfessions of a Flow Junkie
Confessions of a Flow Junkie
 

Dernier

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 

Dernier (20)

Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 

How Thin is Thin? Effective User Story Slicing

  • 1. How Thin is Thin? Effective Story Slicing Gatineau-Ottawa Agile Tour November 21, 2016 1
  • 2. How Thin is Thin? Effective Story Slicing Who is this guy? 2 •Software Development Manager at You.i TV •Recovering Developer & Agilist, but frequently falls off the wagon •Coding since C wasn’t even a teenager yet and Java was something you drank •Part of the Agile community for this entire century
  • 3. How Thin is Thin? Effective Story Slicing But enough about me! Who are you? 3 • Product Managers? • Product Owners? • Business Analysts? • ScrumMasters? • Developers? • QA? • UX? • Architects? • Management? • ???
  • 4. How Thin is Thin? Effective Story Slicing 4 Why Use Small Stories? • Better flow • Better focus • Reduced risk • Improved visibility
  • 5. How Thin is Thin? Effective Story Slicing 5 Why Small?
  • 6. How Thin is Thin? Effective Story Slicing 6 So What Does Thin Mean? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Just enough functionality to provide value to the Product Owner • The Team can easily identify what has to be done to deliver the story
  • 7. How Thin is Thin? Effective Story Slicing 7 DatabaseRemote API What About non-Web Systems? There’s no difference! User Interface Business Logic Database Story User Interface Business Logic Story API Gateway Business Logic Story
  • 8. How Thin is Thin? Effective Story Slicing 8 A “Real World” Example - The Point of Sale (POS) System •Client was building a web-based POS system for salespeople taking orders in the field •The orders would be stored in the POS database, but they would also be sent to the Oracle back-end eBusiness Suite •Customer and Product data would come from the Oracle eBusiness Suite
  • 9. How Thin is Thin? Effective Story Slicing 9 The First Story • Used Personas and Story Mapping to identify how the system would support the work of the salespeople • The Product Owner determined that the most fundamental aspect of the system was to create orders
  • 10. How Thin is Thin? Effective Story Slicing 10 The First Story TOO BIG! • Used Personas and Story Mapping to identify how the system would support the work of the salespeople • The Product Owner determined that the most fundamental aspect of the system was to create orders
  • 11. So what do we really need?
  • 12. How Thin is Thin? Effective Story Slicing 12 For the first Story...
  • 13. How Thin is Thin? Effective Story Slicing 13 For the first Story... • Didn’t create tables for the Customer or Product • Used hard-coded values for both • No validation of those values • Simple web page with “Create Order” button • Second page to show that the order was created (could have even been validated with an SQL query!)
  • 14. How Thin is Thin? Effective Story Slicing 14 Was This Story “Thin”? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Required work in all layers and created the foundation for all later stories • Just enough functionality to provide value to the Product Owner • An Order was created • The Team can easily identify what has to be done to deliver the story • Very small, easily verified
  • 15. How Thin is Thin? Effective Story Slicing 15 The Next Story...
  • 16. How Thin is Thin? Effective Story Slicing 16 The Next Story... • Still using a hard-coded value for the Product • Customer ID is entered manually • Still no validation of those values • Web page now has a text field for the Customer ID as well as“Create Order” button • Second page to show that the order was created (could have even been validated with an SQL query!)
  • 17. How Thin is Thin? Effective Story Slicing 17 Still “Thin”? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Just enough functionality to provide value to the Product Owner • An Order was created with the specified Customer ID • The Team can easily identify what has to be done to deliver the story • Very small, easily verified
  • 18. How Thin is Thin? Effective Story Slicing 18 The Next Next Story...
  • 19. How Thin is Thin? Effective Story Slicing 19 The Next Next Story... • Still using a hard-coded value for the Product • Customer is selected from a list of valid customers, but hard-coded into the page • No validation of the product, but the customer will be valid • Web page now has a drop-down list for the Customer as well as the “Create Order” button • Second page to show that the order was created (could have even been validated with an SQL query!)
  • 20. How Thin is Thin? Effective Story Slicing 20 Are we still “Thin”? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Just enough functionality to provide value to the Product Owner • An Order was created with the selected Customer ID • The Team can easily identify what has to be done to deliver the story • Very small, easily verified
  • 21. How Thin is Thin? Effective Story Slicing 21 The Stories Continue...
  • 22. How Thin is Thin? Effective Story Slicing 22 The Stories Continue... • The Product ID is entered in a text field • Customer is selected from a list of valid customers, but hard-coded into the page • No validation of the product, but the customer will be valid • Web page now has a drop-down list for the Customer, a text field for the Product and a “Create Order” button • Second page to show that the order was created
  • 23. How Thin is Thin? Effective Story Slicing 23 Are we still “Thin”? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Required work in all layers and created the foundation for all later stories • Just enough functionality to provide value to the Product Owner • An Order was created with the selected Customer ID and a Line Item was added for the Product ID entered • The Team can easily identify what has to be done to deliver the story • Very small, easily verified
  • 24. How Thin is Thin? Effective Story Slicing 24 Let’s Skip Ahead A Bit…
  • 25. How Thin is Thin? Effective Story Slicing 25 Let’s Skip Ahead A Bit… • We can now enter multiple Products selected from a list, hard-coded into the page • Customer is selected from a list of valid customers, but hard-coded into the page • Both the product and customer will be valid • Web page now has a drop-down list for the Customer, multiple drop-down lists for the Products and a “Create Order” button • Second page to show that the order was created
  • 26. How Thin is Thin? Effective Story Slicing 26 Are we still “Thin”? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Required work in all layers and created the foundation for all later stories • Just enough functionality to provide value to the Product Owner • An Order was created with the selected Customer ID and Line Items were created for each of the Products • The Team can easily identify what has to be done to deliver the story • Very small, easily verified
  • 27. How Thin is Thin? Effective Story Slicing 27 Ahead even further…
  • 28. How Thin is Thin? Effective Story Slicing 28 Ahead even further… • Both stories use the back-end Product and Customer services to fill the drop-down lists • The lists are valid as of the time the page is rendered since they’re using the most up to date data • The page is now a classic master/detail view with line items for the products
  • 29. How Thin is Thin? Effective Story Slicing 29 Are we still “Thin”? User Interface Web Server Application Server Business Logic Database Story • A single “slice” through all layers of a system • Just enough functionality to provide value to the Product Owner • An Order was created using valid Customers and Products from the back-end services • The Team can easily identify what has to be done to deliver the story • Very small, easily verified
  • 30. How Thin is Thin? Effective Story Slicing 30 All of that from One Story! • We built out Create Order using many small, valuable slices • Each one delivered value • Each one further reduced risk • Each one was tested: • JUnit microtests at the code level • Cucumber scenarios at the story level • Each one allowed incremental delivery of the system architecture
  • 31. How Thin is Thin? Effective Story Slicing So what did we just see? • We used hard-coded values to simplify by excluding any processing of user data entry • A simple UI was used that was barely sufficient to support the stories • No validation of data entered before it was really required • A story that had no “child” records was followed by a story with one child then a story with many children • Although the final system would have an interface with the Oracle back-end services, we deferred using that interface until it was necessary 31
  • 32. How Thin is Thin? Effective Story Slicing 32 Story Splitting Patterns • Hard coding values; • Simple interface; • Defer validation; • Zero, then One, then Many (with the Products); • Defer complexity (with the back-end Services).
  • 33. How Thin is Thin? Effective Story Slicing Exercise: The Digital Personal Video Recorder (PVR) 33 •Process: •Break out into groups of 6-10 (e.g. your table) •Don’t worry about hardware details, focus on the stories about someone will use the PVR •Brainstorm the high-level functionality that should exist •Brainstorm the stories that will deliver that functionality iteratively and incrementally
  • 34. How Thin is Thin? Effective Story Slicing • The system downloads program information over Ethernet. • The user can configure the following: • Maximum number of episodes to record • Finding the same show on other channels • Time to keep the episodes before automatically deleting them • Record only new or new and repeat episodes • Shows can be rated when watched. This information is anonymously fed to an online service that tracks ratings. • The system makes recommendations based on what you like compared to what other people like (all anonymously). • The system integrates with social media like FaceBook, Twitter, etc. Exercise: The Digital Personal Video Recorder (PVR) 34
  • 35. How Thin is Thin? Effective Story Slicing Resources & Further Reading • Story Splitting Patterns • User Stories - An Agile Introduction • How to Enable Estimate-Free Development • It’s Just a Feature-for-Feature Port 35 • Questions about the session? Contact me at dave@daverooney.ca • Interested in changing the world of video? We’re hiring at You.i TV!