SlideShare ist ein Scribd-Unternehmen logo
1 von 32
University of Washington
Agile Developer Certificate
             Spring Quarter
    Advanced Topics in Agile Software
              Development
  Class #1: User Stories, INVEST Model,
  Acceptance Criteria, and Abuse Stories
User Stories
                 Story 14
As a customer I want to check my order
status online so that I can know when to
           expect my package
User Stories
                         Story 14
        As a customer I want to check my order
        status online so that I can know when to
                   expect my package


 A small piece
  of business
value that can
be delivered in
  an iteration
Why User Stories?
• Agile Principle:
  – “The most efficient and effective method of conveying
    information to and within a development team is
    face-to-face conversation”
• User Stories are insufficient to implement
  without a conversation between the
  customer and delivery team
• Describe vertical slices of functionality
• Words need context to interpret;
  requirements are interpreted out of
  context in many cases
What is a User Story?*
•   CARD
    – Token representing the requirement. It's used in planning.
      Notes are written on it, reflecting priority and cost
•   CONVERSATION
    – The requirement itself is communicated from customer to
      programmers through conversation (The conversation is
      largely verbal, but is often supplemented with documents)
•   CONFIRMATION
    – The confirmation provided by the acceptance test is what
      makes possible the simple approach of card and
      conversation
    – When the conversation about a card gets down to the
      details of the acceptance test, the customer and
      programmer settle the final details of what needs to be
             * “Essential XP: Card, Conversation, Confirmation” – Ron Jeffries
             http://www.xprogramming.com/xpmag/EXPCardConversationConfirmation.htm
A User Story Template (CARD)
• Describes the value of functionality from a
  user’s perspective
               User Story Template
                As a <<user role>>
           I want to <<do something>>
            so that <<value/benefit>>


• User Role – a user of the product
• Do Something – feature user needs
The INVEST Model
     I–N–V–E–S–T
     • I =
Independent - dependencies reduce agility
     • N =
 egotiable - negotiation breeds
           N
       collaboration
     • V =
Valuable - valuable to the Product Owner,
       
   
 client, customer and user
     • E =
Estimable - stories are planning tools
     • S =
Sized Appropriately - can be predictably
       
   
 completed and delivered
     • T =
Testable - story (acceptance) tests define
       
   
 when we are “done”
Source: adapted from Bill Wake, xp123.com (http://xp123.com/xplor/
xp0308/index.shtml)
Types of User Stories
• Epic – a user story that has not been
  decomposed to meet INVEST model
  because it is lower priority


• Theme – a collection of related user
  stories
Types of User Stories
• Epic – a user story that has not been
  decomposed to meet INVEST model
  because it is lower priority


• Theme – a collection of related user
  stories
Interconnections of a User


             User Story
         •      Card
         •   Conversation
         •   Confirmation
Interconnections of a User


             User Story
 Value   •      Card
         •   Conversation
         •   Confirmation
Interconnections of a User


             User Story
 Value   •      Card
         •   Conversation
         •   Confirmation




                            Incremental
                              Delivery
Interconnections of a User


             User Story
 Value   •      Card
         •   Conversation   User Perspective
         •   Confirmation       And Focus




                              Incremental
                                Delivery
Interconnections of a User


                    User Story
 Value         •      Card
               •   Conversation   User Perspective
               •   Confirmation       And Focus




                                    Incremental
                                      Delivery
          The Right
         Conversation
Interconnections of a User


                               User Story
         Value            •      Card
                          •   Conversation   User Perspective
                          •   Confirmation       And Focus




 Domain Model,                                 Incremental
System Metaphor,                                 Delivery
Glossary of Terms    The Right
                    Conversation
Interconnections of a User


                               User Story
         Value            •      Card
                          •   Conversation           User Perspective
                          •   Confirmation               And Focus




 Domain Model,                                           Incremental
System Metaphor,                                           Delivery
Glossary of Terms    The Right              Define Done
                    Conversation
Interconnections of a User
                                      Estimates



                               User Story
         Value            •      Card
                          •   Conversation           User Perspective
                          •   Confirmation               And Focus




 Domain Model,                                           Incremental
System Metaphor,                                           Delivery
Glossary of Terms    The Right              Define Done
                    Conversation
Exercise: User Story Writing


         Write User Stories for the Jitter
                web application.



ID 8.5
Acceptance Tests
• Tell us whether the system does what the
  customer expects
• Enable Developers to know they’ve
  satisfied requirements
• Helps us build the “right” software
• Are also called customer tests or
  functional tests
• Can be automated so these can be
  verified by anyone at any time
* Adapted from “A Metric Leading to Agility” – Ron Jeffries
http://www.xprogramming.com/xpmag/jatRtsMetric.htm
Confirmation Through
            Acceptance Criteria
• Product Owner makes first pass at Acceptance
  Criteria before Sprint Planning Meeting
• During Sprint Planning, Acceptance Criteria are
  discussed
• Final Acceptance Criteria for each User Story is a
  negotiation between Delivery Team and Product
  Owner
• Should be short, easy to understand statements
                                          Acceptance Criteria
                Story 14
                                          •View status as “waiting for
  As a customer, I want to check my       pickup”, “en route” or
 order status online so that I can know   “delivered”
     when to expect my package            •Date of each step in route
                                          •Estimated time of delivery
Comparing Acceptance Criteria
     to Definition of Done
Definition of Done: Helps us   Acceptance Criteria: Helps us
build the thing right         build the right thing

                               Acceptance Criteria
                               •View status as “waiting for
                               pickup”, “en route” or
                               “delivered”
                               •Date of each step in route
                               •Estimated time of delivery
User Story “Smells”
• Split along process lines
  – Design, code, test,
    document
• Split across architecture
  lines
  – Database, Business Tier, UI

• Split along procedural
  lines
  – Do this, then this, and
    finally this
*Requirement to User Story – A Case Study

• Our starting requirement:
                                         Story 1
                                 Anyone can register by
                                paying immediately with
                                         PayPal




* Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
*Requirement to User Story – A Case Study

• Maybe break it along process lines?:
                     Story 1.1                                                  Story 1.2
    Design: Anyone can                                     Code: Anyone can register
     register by paying                                     by paying immediately
  immediately with PayPal                                         with PayPal


                     Story 1.3                                                  Story 1.4
   Unit Test: Anyone can                                      Functional Test: Anyone
    register by paying                                         can register by paying
  immediately with PayPal                                     immediately with PayPal

* Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
*Requirement to User Story – A Case Study
 • Maybe break it along architecture
   lines?: 1.1
         Story               Story 1.2
UI: Anyone can register by                                     Business Logic: Anyone
 paying immediately with                                        can register by paying
          PayPal                                              immediately with PayPal


                     Story 1.3                                                  Story 1.4
   Database: Anyone can                                      QA: Anyone can register
    register by paying                                        by paying immediately
  immediately with PayPal                                          with PayPal

* Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
*Requirement to User Story – A Case Study
• Maybe break it along procedural lines?:
                     Story 1.1                                                  Story 1.2
       Collect registration                                      Integrate with PayPal
           information



                     Story 1.3                                                  Story 1.4
     Email registrant after                                      Email organizer after
           payment                                                     payment


* Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
*Requirement to User Story – A Case Study
• Aha, self-contained increments of
  value…
                     Story 1.1                                                  Story 1.2
 As a Registrant I want to                                  As an Organizer I want to
 register with my email so                                  collect more information
   that I can be notified                                    from Registrant so that I
       electronically                                        can contact them later

                     Story 1.3                                                  Story 1.4
  As a Registrant I want to                                 As an Organizer I want to
     be notified of my                                            be notified of a
 processed registration so                                  registration so that I can
 that I know it is complete                                          fulfill it
* Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
More Guidelines for Splitting
               Stories
•   Data boundaries
•   Operational boundaries
•   Exceptions
•   Error handling
•   Removing cross-cutting concerns
•   Priority
Avoid splitting stories too
• Don’t split stories too soon
  – Results in huge inventory on Product Backlog
    (waste)
  – Inertia sets in and clogs system
  – Many details will likely be thrown out,
    resulting in “sunk costs”
• Progressively elaborate stories based on
  – Priority
  – Risk
• Effectively splitting stories is a joint effort
  – Product Owner, Stakeholders
* Abuse User Stories



Implement Security
for User Information




         * From “User Stories Applied” presented by Mike Cohn Agile 2006




                                                                           21
* Abuse User Stories



Implement Security                           As a Malicious Hacker I
for User Information                         want to steal credit card
                                             information so that I can
                                             make fraudulent charges


         * From “User Stories Applied” presented by Mike Cohn Agile 2006




                                                                           21
Abuse Story Workshop
• Agenda (30-60 minute workshop
  typically)
  – Goal: Generate and Prioritize Abuse
    Stories
    • Brainstorm Potential Abusers of Application or
      Identify Specific Abuser to Use During Session
    • Work in Pairs to Generate Abuse Stories; Each
      Pair takes on Single Abuser Persona at a Time
    • Share Generated Abuse Stories and Prioritize
      as Group

Weitere ähnliche Inhalte

Was ist angesagt?

User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013Fabio Armani
 
Composing User Stories - Beginners Guide
Composing User Stories - Beginners GuideComposing User Stories - Beginners Guide
Composing User Stories - Beginners GuideRaja Soundaramourty
 
Invest In Good User Stories
Invest In Good User StoriesInvest In Good User Stories
Invest In Good User StoriesCraig Brown
 
Writing User Stories (04/2012)
Writing User Stories (04/2012)Writing User Stories (04/2012)
Writing User Stories (04/2012)Mai Quay
 
User stories — how to cook a cat?
User stories — how to cook a cat?User stories — how to cook a cat?
User stories — how to cook a cat?Vladimir Tarasov
 
Breaking down agile requirements in Agile Methodology
Breaking down agile requirements in Agile MethodologyBreaking down agile requirements in Agile Methodology
Breaking down agile requirements in Agile MethodologyMario Lucero
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting PatternsKent McDonald
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User StoriesRam Srivastava
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Easy Agile
 
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
 
Writing GREAT Agile User Stories
Writing GREAT Agile User StoriesWriting GREAT Agile User Stories
Writing GREAT Agile User StoriesAgileDad
 

Was ist angesagt? (20)

User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013
 
User Stories explained
User Stories explainedUser Stories explained
User Stories explained
 
Composing User Stories - Beginners Guide
Composing User Stories - Beginners GuideComposing User Stories - Beginners Guide
Composing User Stories - Beginners Guide
 
Invest In Good User Stories
Invest In Good User StoriesInvest In Good User Stories
Invest In Good User Stories
 
Writing User Stories (04/2012)
Writing User Stories (04/2012)Writing User Stories (04/2012)
Writing User Stories (04/2012)
 
User stories — how to cook a cat?
User stories — how to cook a cat?User stories — how to cook a cat?
User stories — how to cook a cat?
 
Breaking down agile requirements in Agile Methodology
Breaking down agile requirements in Agile MethodologyBreaking down agile requirements in Agile Methodology
Breaking down agile requirements in Agile Methodology
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting Patterns
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User Stories
 
User Story
User StoryUser Story
User Story
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
 
User Stories Training
User Stories TrainingUser Stories Training
User Stories Training
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Stories
 
Effective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum teamEffective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum team
 
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
 
Writing GREAT Agile User Stories
Writing GREAT Agile User StoriesWriting GREAT Agile User Stories
Writing GREAT Agile User Stories
 
User Stories
User StoriesUser Stories
User Stories
 
User Stories Fundamentals
User Stories FundamentalsUser Stories Fundamentals
User Stories Fundamentals
 
Epics and User Stories
Epics and User StoriesEpics and User Stories
Epics and User Stories
 
User stories
User storiesUser stories
User stories
 

Ähnlich wie UW Agile CP202 - Class 1 User Stories

User stories writing - Codemotion 2013
User stories writing   - Codemotion 2013User stories writing   - Codemotion 2013
User stories writing - Codemotion 2013Stefano Leli
 
庖丁解牛用户故事 (Splitting Your User Story)
庖丁解牛用户故事 (Splitting Your User Story)庖丁解牛用户故事 (Splitting Your User Story)
庖丁解牛用户故事 (Splitting Your User Story)Odd-e
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanAgile Testing Alliance
 
Agile & UX What changes and other C.R.A.P.
Agile & UX What changes and other C.R.A.P.Agile & UX What changes and other C.R.A.P.
Agile & UX What changes and other C.R.A.P.LeanDog
 
Content Targeting Moving From Visitors to Customers
Content Targeting Moving From Visitors to CustomersContent Targeting Moving From Visitors to Customers
Content Targeting Moving From Visitors to CustomersAlterian
 
User-Testing, Testing, 1,2,3
User-Testing, Testing, 1,2,3User-Testing, Testing, 1,2,3
User-Testing, Testing, 1,2,3BusinessOnline
 
Adressing requirements with agile practices
Adressing requirements with agile practicesAdressing requirements with agile practices
Adressing requirements with agile practicesfboisvert
 
Alla ricerca della User Story perduta
Alla ricerca della User Story perdutaAlla ricerca della User Story perduta
Alla ricerca della User Story perdutaEdoardo Schepis
 
Alla ricerca della user story perduta
Alla ricerca della user story perdutaAlla ricerca della user story perduta
Alla ricerca della user story perdutaBetter Software
 
How Location and Context Changes Everything for Mobile Apps
How Location and Context Changes Everything for Mobile AppsHow Location and Context Changes Everything for Mobile Apps
How Location and Context Changes Everything for Mobile Appsaguynamedben
 
Real User Experience Insight External
Real User Experience Insight ExternalReal User Experience Insight External
Real User Experience Insight Externaloracleonthebrain
 
Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User StoriesCarlo Kruger
 
Adressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thAdressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thmarwakhalid
 
Agile development and project management
Agile development and project managementAgile development and project management
Agile development and project managementVishal Bardoloi
 

Ähnlich wie UW Agile CP202 - Class 1 User Stories (20)

Story of user story
Story of user storyStory of user story
Story of user story
 
User Stories Applied
User Stories AppliedUser Stories Applied
User Stories Applied
 
User stories writing - Codemotion 2013
User stories writing   - Codemotion 2013User stories writing   - Codemotion 2013
User stories writing - Codemotion 2013
 
庖丁解牛用户故事 (Splitting Your User Story)
庖丁解牛用户故事 (Splitting Your User Story)庖丁解牛用户故事 (Splitting Your User Story)
庖丁解牛用户故事 (Splitting Your User Story)
 
User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
 
Agile & UX What changes and other C.R.A.P.
Agile & UX What changes and other C.R.A.P.Agile & UX What changes and other C.R.A.P.
Agile & UX What changes and other C.R.A.P.
 
Agile Story Writing
Agile Story WritingAgile Story Writing
Agile Story Writing
 
Content Targeting Moving From Visitors to Customers
Content Targeting Moving From Visitors to CustomersContent Targeting Moving From Visitors to Customers
Content Targeting Moving From Visitors to Customers
 
User-Testing, Testing, 1,2,3
User-Testing, Testing, 1,2,3User-Testing, Testing, 1,2,3
User-Testing, Testing, 1,2,3
 
Agile Story Writing
Agile Story WritingAgile Story Writing
Agile Story Writing
 
Adressing requirements with agile practices
Adressing requirements with agile practicesAdressing requirements with agile practices
Adressing requirements with agile practices
 
Alla ricerca della User Story perduta
Alla ricerca della User Story perdutaAlla ricerca della User Story perduta
Alla ricerca della User Story perduta
 
Alla ricerca della user story perduta
Alla ricerca della user story perdutaAlla ricerca della user story perduta
Alla ricerca della user story perduta
 
How Location and Context Changes Everything for Mobile Apps
How Location and Context Changes Everything for Mobile AppsHow Location and Context Changes Everything for Mobile Apps
How Location and Context Changes Everything for Mobile Apps
 
Real User Experience Insight External
Real User Experience Insight ExternalReal User Experience Insight External
Real User Experience Insight External
 
Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
 
Adressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16thAdressing nfr-with-agile-practices (english) - dec 16th
Adressing nfr-with-agile-practices (english) - dec 16th
 
Agile development and project management
Agile development and project managementAgile development and project management
Agile development and project management
 
AT2012_Pune_UserStories_BhawanaGupta
AT2012_Pune_UserStories_BhawanaGuptaAT2012_Pune_UserStories_BhawanaGupta
AT2012_Pune_UserStories_BhawanaGupta
 
Defining Done
Defining DoneDefining Done
Defining Done
 

Mehr von Chris Sterling

Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesChris Sterling
 
The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...Chris Sterling
 
From Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSFrom Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSChris Sterling
 
Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Chris Sterling
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtChris Sterling
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandChris Sterling
 
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleManaging Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleChris Sterling
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelChris Sterling
 
Recognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget SoundRecognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget SoundChris Sterling
 
Dollars and Dates are Killing Agile
Dollars and Dates are Killing AgileDollars and Dates are Killing Agile
Dollars and Dates are Killing AgileChris Sterling
 
Integrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementIntegrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementChris Sterling
 
The Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstThe Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstChris Sterling
 
Towards a Push-Button Release
Towards a Push-Button ReleaseTowards a Push-Button Release
Towards a Push-Button ReleaseChris Sterling
 
Testing in an Agile Context 2011
Testing in an Agile Context 2011Testing in an Agile Context 2011
Testing in an Agile Context 2011Chris Sterling
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Chris Sterling
 
Managing Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankManaging Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankChris Sterling
 
Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010Chris Sterling
 
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...Chris Sterling
 
UW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtUW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtChris Sterling
 
Managing Software Debt Agile Bazaar
Managing Software Debt Agile BazaarManaging Software Debt Agile Bazaar
Managing Software Debt Agile BazaarChris Sterling
 

Mehr von Chris Sterling (20)

Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
 
The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...
 
From Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSFrom Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaS
 
Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management Debt
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
 
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleManaging Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG Seattle
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at Intel
 
Recognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget SoundRecognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget Sound
 
Dollars and Dates are Killing Agile
Dollars and Dates are Killing AgileDollars and Dates are Killing Agile
Dollars and Dates are Killing Agile
 
Integrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementIntegrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio Management
 
The Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstThe Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to Burst
 
Towards a Push-Button Release
Towards a Push-Button ReleaseTowards a Push-Button Release
Towards a Push-Button Release
 
Testing in an Agile Context 2011
Testing in an Agile Context 2011Testing in an Agile Context 2011
Testing in an Agile Context 2011
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011
 
Managing Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankManaging Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve Bank
 
Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010
 
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
 
UW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtUW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software Debt
 
Managing Software Debt Agile Bazaar
Managing Software Debt Agile BazaarManaging Software Debt Agile Bazaar
Managing Software Debt Agile Bazaar
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

UW Agile CP202 - Class 1 User Stories

  • 1. University of Washington Agile Developer Certificate Spring Quarter Advanced Topics in Agile Software Development Class #1: User Stories, INVEST Model, Acceptance Criteria, and Abuse Stories
  • 2. User Stories Story 14 As a customer I want to check my order status online so that I can know when to expect my package
  • 3. User Stories Story 14 As a customer I want to check my order status online so that I can know when to expect my package A small piece of business value that can be delivered in an iteration
  • 4. Why User Stories? • Agile Principle: – “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation” • User Stories are insufficient to implement without a conversation between the customer and delivery team • Describe vertical slices of functionality • Words need context to interpret; requirements are interpreted out of context in many cases
  • 5. What is a User Story?* • CARD – Token representing the requirement. It's used in planning. Notes are written on it, reflecting priority and cost • CONVERSATION – The requirement itself is communicated from customer to programmers through conversation (The conversation is largely verbal, but is often supplemented with documents) • CONFIRMATION – The confirmation provided by the acceptance test is what makes possible the simple approach of card and conversation – When the conversation about a card gets down to the details of the acceptance test, the customer and programmer settle the final details of what needs to be * “Essential XP: Card, Conversation, Confirmation” – Ron Jeffries http://www.xprogramming.com/xpmag/EXPCardConversationConfirmation.htm
  • 6. A User Story Template (CARD) • Describes the value of functionality from a user’s perspective User Story Template As a <<user role>> I want to <<do something>> so that <<value/benefit>> • User Role – a user of the product • Do Something – feature user needs
  • 7. The INVEST Model I–N–V–E–S–T • I = Independent - dependencies reduce agility • N = egotiable - negotiation breeds N collaboration • V = Valuable - valuable to the Product Owner, client, customer and user • E = Estimable - stories are planning tools • S = Sized Appropriately - can be predictably completed and delivered • T = Testable - story (acceptance) tests define when we are “done” Source: adapted from Bill Wake, xp123.com (http://xp123.com/xplor/ xp0308/index.shtml)
  • 8. Types of User Stories • Epic – a user story that has not been decomposed to meet INVEST model because it is lower priority • Theme – a collection of related user stories
  • 9. Types of User Stories • Epic – a user story that has not been decomposed to meet INVEST model because it is lower priority • Theme – a collection of related user stories
  • 10. Interconnections of a User User Story • Card • Conversation • Confirmation
  • 11. Interconnections of a User User Story Value • Card • Conversation • Confirmation
  • 12. Interconnections of a User User Story Value • Card • Conversation • Confirmation Incremental Delivery
  • 13. Interconnections of a User User Story Value • Card • Conversation User Perspective • Confirmation And Focus Incremental Delivery
  • 14. Interconnections of a User User Story Value • Card • Conversation User Perspective • Confirmation And Focus Incremental Delivery The Right Conversation
  • 15. Interconnections of a User User Story Value • Card • Conversation User Perspective • Confirmation And Focus Domain Model, Incremental System Metaphor, Delivery Glossary of Terms The Right Conversation
  • 16. Interconnections of a User User Story Value • Card • Conversation User Perspective • Confirmation And Focus Domain Model, Incremental System Metaphor, Delivery Glossary of Terms The Right Define Done Conversation
  • 17. Interconnections of a User Estimates User Story Value • Card • Conversation User Perspective • Confirmation And Focus Domain Model, Incremental System Metaphor, Delivery Glossary of Terms The Right Define Done Conversation
  • 18. Exercise: User Story Writing Write User Stories for the Jitter web application. ID 8.5
  • 19. Acceptance Tests • Tell us whether the system does what the customer expects • Enable Developers to know they’ve satisfied requirements • Helps us build the “right” software • Are also called customer tests or functional tests • Can be automated so these can be verified by anyone at any time * Adapted from “A Metric Leading to Agility” – Ron Jeffries http://www.xprogramming.com/xpmag/jatRtsMetric.htm
  • 20. Confirmation Through Acceptance Criteria • Product Owner makes first pass at Acceptance Criteria before Sprint Planning Meeting • During Sprint Planning, Acceptance Criteria are discussed • Final Acceptance Criteria for each User Story is a negotiation between Delivery Team and Product Owner • Should be short, easy to understand statements Acceptance Criteria Story 14 •View status as “waiting for As a customer, I want to check my pickup”, “en route” or order status online so that I can know “delivered” when to expect my package •Date of each step in route •Estimated time of delivery
  • 21. Comparing Acceptance Criteria to Definition of Done Definition of Done: Helps us Acceptance Criteria: Helps us build the thing right build the right thing Acceptance Criteria •View status as “waiting for pickup”, “en route” or “delivered” •Date of each step in route •Estimated time of delivery
  • 22. User Story “Smells” • Split along process lines – Design, code, test, document • Split across architecture lines – Database, Business Tier, UI • Split along procedural lines – Do this, then this, and finally this
  • 23. *Requirement to User Story – A Case Study • Our starting requirement: Story 1 Anyone can register by paying immediately with PayPal * Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
  • 24. *Requirement to User Story – A Case Study • Maybe break it along process lines?: Story 1.1 Story 1.2 Design: Anyone can Code: Anyone can register register by paying by paying immediately immediately with PayPal with PayPal Story 1.3 Story 1.4 Unit Test: Anyone can Functional Test: Anyone register by paying can register by paying immediately with PayPal immediately with PayPal * Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
  • 25. *Requirement to User Story – A Case Study • Maybe break it along architecture lines?: 1.1 Story Story 1.2 UI: Anyone can register by Business Logic: Anyone paying immediately with can register by paying PayPal immediately with PayPal Story 1.3 Story 1.4 Database: Anyone can QA: Anyone can register register by paying by paying immediately immediately with PayPal with PayPal * Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
  • 26. *Requirement to User Story – A Case Study • Maybe break it along procedural lines?: Story 1.1 Story 1.2 Collect registration Integrate with PayPal information Story 1.3 Story 1.4 Email registrant after Email organizer after payment payment * Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
  • 27. *Requirement to User Story – A Case Study • Aha, self-contained increments of value… Story 1.1 Story 1.2 As a Registrant I want to As an Organizer I want to register with my email so collect more information that I can be notified from Registrant so that I electronically can contact them later Story 1.3 Story 1.4 As a Registrant I want to As an Organizer I want to be notified of my be notified of a processed registration so registration so that I can that I know it is complete fulfill it * Modified from original article by J.R. Rainsberger - http://www.jbrains.info/weblog/browse/9
  • 28. More Guidelines for Splitting Stories • Data boundaries • Operational boundaries • Exceptions • Error handling • Removing cross-cutting concerns • Priority
  • 29. Avoid splitting stories too • Don’t split stories too soon – Results in huge inventory on Product Backlog (waste) – Inertia sets in and clogs system – Many details will likely be thrown out, resulting in “sunk costs” • Progressively elaborate stories based on – Priority – Risk • Effectively splitting stories is a joint effort – Product Owner, Stakeholders
  • 30. * Abuse User Stories Implement Security for User Information * From “User Stories Applied” presented by Mike Cohn Agile 2006 21
  • 31. * Abuse User Stories Implement Security As a Malicious Hacker I for User Information want to steal credit card information so that I can make fraudulent charges * From “User Stories Applied” presented by Mike Cohn Agile 2006 21
  • 32. Abuse Story Workshop • Agenda (30-60 minute workshop typically) – Goal: Generate and Prioritize Abuse Stories • Brainstorm Potential Abusers of Application or Identify Specific Abuser to Use During Session • Work in Pairs to Generate Abuse Stories; Each Pair takes on Single Abuser Persona at a Time • Share Generated Abuse Stories and Prioritize as Group

Hinweis der Redaktion