user stories deep dive

92
User Stories Deep Dive

Upload: amir-barylko

Post on 08-Jan-2017

225 views

Category:

Technology


0 download

TRANSCRIPT

User Stories Deep Dive

User Stories

Focused on what(not how)

What you expect(avoid being vague)

Manage scope(lightweight)

Don’t include many details

(Details will come later)

It can be estimated(otherwise is too big)

It should fit in a card(or sticky note)

It’s not a contract(it will change)

Placeholder for conversation

Where do User Stories live?

User Story Map

R1

R2

User Activities

User Tasks

User Stories

User Stories

KanbanBacklog Analysis Coding QA Deploy

Writing user stories

Format IAs a [ROLE]

I want to [ACTION]

So I can [GOAL]

Who

What

Why

Format IIIn order to [GOAL]

As a [ROLE]

I want to [ACTION]

Who

What

Why

INVEST guideline

Independent

Negotiable

Valuable

Estimable

Small

Testable

Non Functional Requirements

Make it part of a story

(if possible)

Write a test

Even a manual test

Make sure there’s some kind of card

on the board

No matter the format

What about the details?

When is the right time to add details?

When can more stories be

discovered?

Any time! Anywhere!

Examples

Movie Library AppDonald likes to watch movies and tell his friends about it. He uses a site that helps him to find movies (old, new, etc), rate them and share with others. He also enjoys the previews and loves to hear when his “favourites” movies are playing in theatres.

Right or Wrong?As a Developer

I want use a NoSQL db to store movies

So I can list them faster

Right or Wrong?As a Developer

I want to use Twitter Bootstrap for the UI

So I can use all the cool buttons and layout

Right or Wrong?As a User

I want my app to be easy to use

So I can get the top ten UIX award

Right or Wrong?As a User

I want to get statistics about movies

So I can decide which users could be willing to buy a movie ticket ahead of time

Right or Wrong?As a User

I want to login to the site

So I can use the site

Right or Wrong?As a User

I want to login to the site but if I forget my password I want a password recovery email or maybe use Google instead

So I can review movies

English MasterEnglishMaster is an application to let users read lessons to learn and improve english. The lessons are provided in an alphabetical index that the user can filter by choosing a letter of the alphabet or searching for a word.

Medical StudiesThe application needs to process XML files contains medical studies that come with patient information and study results.

The studies are uploaded in a Zip file to our FTP server. Each new file needs to be processed and added to the database (unless it has been processed).

It is important to be robust and handle errors to avoid duplication.

Sizing stories

Identify Complexity

Task Breakdown

Throwing a dice

Shaking Two Months

User Story PointsUsing Fibonacci (1, 2, 3, 5, 8, 13 …)

Planning poker

Benefits & Drawbacks

Relative complexity

Tend to average

How often do we estimate?

Can we avoid estimation?

It will take what it takes?

Let’s make each story…

Around the same size

The path to…

NO ESTIMATES!

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

More 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 story be of the same size?

Complexity ∝ amountHow many scenarios per feature?

Complexity ∝ amountThe more scenarios we find the more

complex the story is

Complexity ∝ amountIf scenarios are unclear, then is time to

rethink the feature

Complexity ∝ amountScenarios

0

1

2

4

5

6

7

Complexity

Simple Medium Complex WTF?

Complexity ∝ ClarityToo many steps

Complexity ∝ ClarityTakes more than 10 minutes to write

Complexity ∝ ClarityYou read it the next day and have no clue what it means

RecipeMake every story around the same size

RecipeOne or two scenarios most

RecipeMake sure you can implement it in XX

amount of time (1 or 2 days)

RecipeFind the simplest scenario

that provides value

THANK YOU!

The Smartest tool for agile project management

http://smartview.io

[email protected]

@abarylko

http://bit.ly/abarylkoslides

http://orthocoders.com

http://westerndevs.com