user story workshop · user story workshop ... today’s assignment • e. initial requirements [2...

38
User Story Workshop Garm Lucassen September 16 2015 Game Production

Upload: others

Post on 15-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

User Story Workshop

Garm LucassenSeptember 16 2015

Game Production

Page 2: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 3: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 4: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 5: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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, , )

Page 6: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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”

, ,

Page 7: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 8: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

1. What is user story quality?2. Conceptualizing a user story 3. Cross-story relationships 4. Automating the QUS Framework

Page 9: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 10: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

Sept 16 2015

Quality User Story Framework Overview

10

Page 11: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 12: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 13: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 14: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

2. Conceptualizing a user story1. What is user story quality?

3. Cross-story relationships 4. Automating the QUS Framework

Page 15: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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..*

Page 16: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 17: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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”

, ,

Page 18: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 19: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 20: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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..*

Page 21: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

1. What is user story quality? 2. Conceptualizing a user story

4. Automating the QUS Framework3. Cross-story relationships

- Complete - Independent - Uniform - Unique

Page 22: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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⬇

Page 23: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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⬇

Page 24: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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, , )

Page 25: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 26: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

4. Automating the QUS Framework

1. What is user story quality? 2. Conceptualizing a user story 3. Cross-story relationships

Page 27: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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)

Page 28: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 29: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 30: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

Sept 16 2015

Automatic Quality User Story Artisan

30

Page 31: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

Sept 16 2015

Using AQUSA w/ Pivotal Tracker

31

Page 32: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 33: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 34: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 35: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 37: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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

Page 38: User Story Workshop · User Story Workshop ... Today’s assignment • E. Initial Requirements [2 pages] • Use PivotalTracker to define a set of user stories that constitute the

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