Requirements¶
User Stories¶
Role-Goal-Benefit
Role: Describle a specific role
Goal: An achievable goal
Benefit: The value that the goal might hold
Role can be non-human entities
Limitations
Definition of Done
Engineering Tasks
Effort Estimate
Should be within an iteration e.g., 2 weeks in Scrum
Easily verifiable so the client knows what the expect, and the person fulfilling the user story can be validated that they’ve completed the task.
As clear as possible, without ambiguities
INVEST
I - Independence
All user stories should be independent of each other
N - Negotiable
V - Valueable
E - Estimable
S - Small
T - Testability
Consider the following value statement in the context of a user story for developing a data analysis system:
‘As a quantitative researcher, I want to be able to calculate the correlation between two variables, so that I can determine how correlated these variables are.’
Which INVEST guideline is most violated by this user story?
Independent
Negotiable
Valuable correct
Estimable
Small
Testable
The benefit in this value statement is simply repeating the goal, and therefore violates the principle of a user story being Valuable. A better value statement would have included the benefit of determining correlation between two variables
Example¶
Use case: As a prof. I want to create repositories so students can work
Role - Prof Goal - Create repositories Benefit - Students can work
Limitations: Need: Repo names, student id’s Definition of done:
Runnable as single command
Automated test cases
Programmatically verifiable
- Engineering notes:
Should use GitHubManager class
- Cost estimate:
1.5 units/days
Decomposing User Stories¶
Role: Player Goal: Move Mario Benefit: Dodge/Attack the enemy
Limitations: Keyboard input Notes: Use existing Level class Cost: 3
+1 - Key Control
+1 - Handling movement
+1 - Handling collissions
DOD:
Key input controls mario’s movement
Mario is able to move through the level
When mario colides enemey, one of them should be hit
I: Independent - NO N: Negotiable - YES V: Valuable - YES E: Estimable - YES S: Small - NO T: Testable - YES
Find entities that can be decompose
Link the entities decomposed
Find the actions involved; bind actions
Prototype
Formalize; like UML
Start implementation
- Entities can be found in Defintion of Done
Key, Mario, Level, Enemies
- Both mario and enimies are both figures
Key Level Figure Mario Enemy