SlideShare a Scribd company logo
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!

More Related Content

Viewers also liked

Epics and User Stories
Epics and User StoriesEpics and User Stories
Epics and User Stories
Manish Agrawal, CSP®
 
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
Payton Consulting
 
Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How To
Payton 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 Jain
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
Fabio Armani
 
Agile Team Working Agreements
Agile Team Working AgreementsAgile Team Working Agreements
Agile Team Working Agreements
Payton Consulting
 

Viewers also liked (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
 

Similar to 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 2019
Niels Basjes
 
Gateway to Agile: Agile Requirements
Gateway to Agile: Agile Requirements Gateway to Agile: Agile Requirements
Gateway to Agile: Agile Requirements
Gervais Johnson, Advisor
 
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 Architecture
Samantha Geitz
 
Turn On The Lights
Turn On The LightsTurn On The Lights
Turn On The Lights
Postman
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino Dogs
Mark Myers
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
Daniel 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 Metrics
Mark 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 Automation
Andy 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 Decisions
Looker
 
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
agilebin
 
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
confluent
 
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 Presentation
Andrew Bell
 
How to work with developers
How to work with developersHow to work with developers
How to work with developers
Pascal 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 2018
Bradley Irby
 
Online shopping system.pptx
Online shopping system.pptxOnline shopping system.pptx
Online shopping system.pptx
poojarameshpawar7
 

Similar to 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
 

More from 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 Less
Dave Rooney
 
GOAT 2015 - Digging to the Roots
GOAT 2015 - Digging to the RootsGOAT 2015 - Digging to the Roots
GOAT 2015 - Digging to the Roots
Dave 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 2018
Dave 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 2018
Dave Rooney
 
Confessions of a Flow Junkie
Confessions of a Flow JunkieConfessions of a Flow Junkie
Confessions of a Flow Junkie
Dave Rooney
 

More from 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
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 

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!