Capturing Requirements
How do you capture requirements?
Reality always wins
Requirements will change
Cone of Uncertainty
Sizing Requirements
How do you choose a size?
Shirt Sizes(XXL, XL, L, M, S, XS, etc)
FDDFrown Driven Development
Magic 8 ball
TwoMonths
One Month
User Story PointsUsing Fibonacci (1, 2, 3, 5, 8, 13 …)
Discovering complexity
Complexity is relative
Can we avoid estimation?
It will take what it takes?
Units of work per week
Let’s make each unit of work…
Around the same size
What can we build in xxx days
that adds value?
Acceptance Criteria
When are we done?
Writing ScenariosInput
Output
Step 1
Step 2
…
Step N
Multiple Scenarios
Gherkin DSLBusiness readable DSL Flush out requirements Automated testing Used by Cucumber, SpecFlow, jBehave
FeaturesFeature: Listing movies
As a User
I want to list movies
So I can see the contents of the library
ScenariosScenario: List all movies
Given I'm logged in
And I have (some data loaded)
When I (do some action)
Then I (should see expected results)
Writing reviewsScenario: Write a review for a movie
Given I'm logged in as a Critic
When I write a review for a movie
Then I should see the new review
in the reviews section
for the movie
Example IIScenario: See most recent movies first Given I'm logged in as a User When I order the list by release date
Then I should see the movies with the release date most recent first
Guidelines to write
scenarios
??????Scenario: Perfect world
Given the application is setup
When I want to use some projects
Then I should be able to load data
And have a great user experience
but no bugs should appear
?????Scenario: Redirect user
Given a User "dave" with pwd "secret"
And I am not logged in
When I navigate to the home page
And I fill in "Username" with "dave"
And I fill in "Password" with "secret"
And I press “Login"
Then I am redirected to the login form
Just rightScenario: List all projects
Given I'm logged in
And I have some projects stored
When I list the projects
Then I should see all of them
Estimating using scenarios
New FunctionalityWhen is the right time to write scenarios? During Inception? During Analysis? During Development? During QA?
Order Matters Not!Can every feature be independent?
Size Matters not!Can every feature be of the same size?
Value matters a lot!Otherwise why are we building it?
Complexity∝ amountHow many scenarios per feature?
Complexity ∝ amountScenarios
0
1
2
4
5
6
7
Complexity
Simple Medium Complex WTF?
Complexity ∝ ClarityToo many steps
Complexity∝ClarityIf scenarios are unclear
then is time to rethink the feature
Complexity ∝ ClarityTakes more than 10 minutes to write
Complexity ∝ ClarityYou read it the next day and have no clue what it means
RecipeFocus on what can be built in X days
RecipeOne or two scenarios at most
RecipeMake sure you can implement it in XX
amount of time(1 or 2 days)
RecipeFind the simplest scenario
that provides value
RecipeFind the FACTS (metrics/speed)
and use it to estimate
RecipeImprove and repeat
The Smartest tool for agile project management
http://smartview.io
[email protected]
@abarylko
http://bit.ly/abarylkoslides
http://orthocoders.com
http://westerndevs.com