user story workshop · user story workshop ... today’s assignment • e. initial requirements [2...
TRANSCRIPT
User Story Workshop
Garm LucassenSeptember 16 2015
Game Production
Sept 16 2015
Before we begin
• Did you register for PivotalTracker?
• Please submit the email you registered for PivotalTracker with at: https://goo.gl/eO760X
2
Sept 16 2015
Today’s assignment• E. Initial Requirements [2 pages]
• Use PivotalTracker to define a set of user stories that constitute the initial set of requirements for your game. Define the requirements for the first sprint backlog, and those that would remain in the product backlog (icebox, in PivotalTracker). While specifying these requirements, the AQUSA tool will ensure the quality of your specified user stories. Please export the complete set of user stories and copy it to your gdrive folder.
3
Sept 16 2015
About me• Did my BSc & MSc here
• Now: PhD Software Product Management
• SPM course for professionals http://softwareproductmanagement.org
• SPM course for students
• SPM & Software Architecture
• Current focus: user stories4
Sept 16 2015
What is a user story?• User stories represent customer requirements in a card,
leading to conversation and confirmation (Jeffries, 2001)
• User stories only capture the essential elements of a requirement: - who it is for - what it expects from the system - why it is important (optional)
• Simple format:
5
who what why
(Mike Cohn)
(Yu and Mylopoulos, 1994)
As a role I want to action (so that benefit, , )
Sept 16 2015
What is a user story?• “As a User, I want to purchase an event ticket”
• “As a User, I want to be notified when an event is close to becoming sold out, so that I do not miss the event”
6
“As a User I want to search for new events by favorited organizers
so that I am the first to know of new events”
, ,
Sept 16 2015
Overview
1. Quality User Story Framework
2. Conceptual Model of User Stories
3. Cross-Story Relationships
4. Automatic Quality User Story Artisan (AQUSA)
5. Using AQUSA with Pivotal Tracker
7
1. What is user story quality?2. Conceptualizing a user story 3. Cross-story relationships 4. Automating the QUS Framework
Sept 16 2015
Quality User Story Framework Introduction
• Defines 14 quality criteria for individual and sets of user stories
• All derivable from user story text
• Ignores requirements management concerns such as effort estimation and comments
9
Sept 16 2015
Quality User Story Framework Overview
10
Sept 16 2015 11
AtomicA user story expresses a requirement for exactly one feature
Quality defect exampleAs a User, I want to click a particular location from the map and thereby perform a
search of landmarks associated with that latitude longitude combination
⬇1. As a User, I want to click a particular location from the map
2. As a User, I want to search landmarks associated with a location based on lat long
split
Example 1- syntactic
Sept 16 2015
Example 2 - semantic
12
Problem-orientedA user story only specifies the problem, not the solution to it
Quality defect exampleAs a care professional I want to save a reimbursement. - Add save button on top
right (never grayed out)
⬇As a care professional I want to save a reimbursement
remove solution
Sept 16 2015
Example 3 - pragmatic
13
UniformAll user stories follow roughly the same template
Quality defect example1. As a User, I want to create an account 2. As a User, I want to reset my password
3. As an Administrator, I receive an email notification when a new user is registered
⬇As an Administrator, I want to receive an email notification when a new user is
registered
add want to
2. Conceptualizing a user story1. What is user story quality?
3. Cross-story relationships 4. Automating the QUS Framework
Sept 16 2015
Conceptual model
15
Subject
User Story
EndMeans
Role 1 1..*
1 0..*
Format0..1
1..*has_parent
Action Verb Direct Object
Indirect objectAdjective
1
Epic
1..*has
QualityClarification
0..* 0..*
11
1 1 10..* 0..*
Dependency
0..*
Sept 16 2015
“As a User, I want to search for new events by favorited organizers,
so that I am the first to know of new events”
Conceptual model
16
User Story
EndMeans
Role 1 1..*
1 0..*
Format0..1
1..*has_parent
1
11
Sept 16 2015 17
User Story
EndMeans
Role 1 1..*
1 0..*
Format1
11
0..1
1..*has_parent
“As a User I want to search for new events by favorited organizers
so that I am the first to know of new events”
, ,
Sept 16 2015
Means concepts
18
Subject
Means
Action Verb Direct Object
Indirect objectAdjective
1 1 10..* 0..*
“I want to search for new events by favorited organizers”I search eventsnew
Subject Action Verb Direct Object
Adjective Indirect object
favorited organizers
Sept 16 2015
Ends concepts“so that I am the first to know of new events”
19
End
QualityClarification
0..* 0..*
Dependency
0..*
“so that I am the first to know of new events”new events
DependencyClarification Quality
the first
Sept 16 2015
Conceptual model
20
Subject
User Story
EndMeans
Role 1 1..*
1 0..*
Format0..1
1..*has_parent
Action Verb Direct Object
Indirect objectAdjective
1
Epic
1..*has
QualityClarification
0..* 0..*
11
1 1 10..* 0..*
Dependency
0..*
1. What is user story quality? 2. Conceptualizing a user story
4. Automating the QUS Framework3. Cross-story relationships
- Complete - Independent - Uniform - Unique
Sept 16 2015
Cross-story relationships (1)Complete
When user stories imply necessity of functionality not yet captured in another user story, the set is incomplete
Example: to read, update or delete an item you must first create it
Example: US1: As a User, I want to delete an event US2: As a User, I want to update an event
US3: As a User, I want to create an event
22
Requires⬇
Sept 16 2015
Cross-story relationships (2)Independent
There are many ways in which user stories are dependent on another user story. Two examples are causality and superclasses:
Example: ‘content’ can refer to different types of multimedia. Audio, video, photographs, annotated text, …
Example: US1: As a User, I want to edit profile content
US2: As a User, I want to upload a profile photo US3: As a User, I want to provide profile text
23
refers to⬇
Sept 16 2015
Cross-story relationships (3)Uniform
A user story has a format that is consistent with the format of all other user stories
Example: all user stories (roughly) follow the template
Example: US1. As a User, I want to create an account US2. As a User, I want to reset my password US3. As an Administrator, I receive an email notification when a new user is registered
US3’. As an Administrator, I want to receive an email notification when a new user is registered
24
change to⬇
As a role I want to action (so that benefit, , )
Sept 16 2015
Cross-story relationships (4)Unique
No other user story is identically or semantically the same or too similar. Many different ways: exact or semantic duplicate,
different role or ends = means
Example: US1: As a User, I want to edit an event US2: As a User, I want to change an event
25
4. Automating the QUS Framework
1. What is user story quality? 2. Conceptualizing a user story 3. Cross-story relationships
Sept 16 2015
Automatic Quality User Story Artisan
• Automatically assess user story quality • Restrict ourselves to criteria with potential for 100% recall
• Syntactic: Well-formed Atomic Minimal
• Semantic 100% recall unachievable • Selection of pragmatic:
Explicit dependencies Uniform Unique
27
(Daniel Berry et al., 2012)
User Stories
AQUSA
Linguistic Parser
Enhancer
Analyzer
Synonyms Homonyms Ontologies
Error Report
Atomic Explicit dependencies UniqueMinimal Uniform
Report generator
User story base
(Ryan, 1993)
Sept 16 2015 28
Automatic Quality User Story Artisan
Well-formedAtomic Minimal Uniform Unique
AQUSA
√only one feature no unnecessary text follows the template has a role and meansno duplicates
(with my name)“As a Visitor, I want to supply my personal details, so that the ticket is personalized ”
√√√⤫
“As a Visitor, I want to supply my personal details, so that the ticket is personalized (with my name)”
error!
none found
√Explicit dependencies
Sept 16 2015 29
Automatic Quality User Story Artisan
Well-formedAtomic Minimal Uniform Unique
AQUSA
√only one feature no unnecessary text follows the template has a role and meansno duplicates
√√√
“As a Visitor, I want to supply my personal details, so that the ticket is personalized”
none found
√Explicit dependencies
√ “As a Visitor, I want to supply my personal details, so that the ticket is personalized”
√
perfect story
Sept 16 2015
Automatic Quality User Story Artisan
30
Sept 16 2015
Using AQUSA w/ Pivotal Tracker
31
Sept 16 2015
Today’s assignment• E. Initial Requirements [2 pages]
• Use PivotalTracker to define a set of user stories that constitute the initial set of requirements for your game. Define the requirements for the first sprint backlog, and those that would remain in the product backlog (icebox, in PivotalTracker). While specifying these requirements, the AQUSA tool will ensure the quality of your specified user stories. Please export the complete set of user stories and copy it to your gdrive folder.
32
Sept 16 2015
Before we begin• Did you register for PivotalTracker?
• Please submit the email you registered to PivotalTracker with at: https://goo.gl/eO760X
• Once my explanation is complete, I will invite you to the Game Production Workspace
33
Sept 16 2015
Connect pivotal and AQUSA
• Create a PivotalTracker project within the Game Production Workspace (550940)
• Go to project settings
• Create a webhook to: http://aqusa.nl/webhook
• Submit name and project id to: http://aqusa.nl/submit_project
34
Sept 16 2015
What you are going to do
• Use QUS Framework hand out to write user stories
• Create user stories in Pivotal Tracker
• Change a story based on AQUSA feedback if necessary
• Export your completed user stories and put them in your gdrive folder
35
Garm Lucassen: [email protected] Fabiano Dalpiaz: [email protected] Jan Martijn van der Werf: [email protected] Sjaak Brinkkemper: [email protected]
Thank you!
Sept 16 2015
References• M. Cohn, User Stories Applied: for Agile Software Development. Red- wood City, CA,
USA: Addison Wesley Longman Publishing Co., Inc., 2004.
• O. I. Lindland, G. Sindre, and A. Sølvberg, “Understanding Quality in Conceptual Modeling,” IEEE Software, vol. 11, no. 2, pp. 42–49, 1994.
• D. Berry, R. Gacitua, P. Sawyer, and S. Tjong, “The Case for Dumb Requirements Engineering Tools,” in Proc. of Requirements Engineer- ing: Foundation for Software Quality. Springer, 2012, vol. 7195, pp. 211–217.
• IEEE Computer Society, “IEEE Recommended Practice for Software Requirements Specifications,” IEEE Std 830-1993, 1994.
• Jeffries, Ron. “Essential XP: Card, Conversation, and Confirmation.” XP Magazine (August 30, 2001)
• P. Heck and A. Zaidman, “A Quality Framework for Agile Requirements: A Practitioner’s Perspective,” CoRR, vol. abs/1406.4692, 2014. [Online]. Available: http://arxiv.org/abs/1406.4692
37
Sept 16 2015
AQUSA Architecture
38
User Stories
AQUSA
Linguistic Parser
Enhancer
Analyzer
Synonyms Homonyms Ontologies
Error Report
Atomic Explicit dependencies UniqueMinimal Uniform
Report generator
User story base