user story

Post on 28-Jan-2015

150 Views

Category:

Technology

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

This presentation describeWhat is the need for user stories in Agile project?What is a story?Why story?What is criteria for a good story?What are not stories?Prerequisite? Knowledge of Scrum and it’s terms

TRANSCRIPT

User Stories

- Sunil Kumar

Agenda

• What is the need for user stories?• What is a story?• Why story?• What is criteria for a good story?• What are not stories?

Prerequisite? Knowledge of Scrum and it’s terms

What problems do user stories address?

(mis)Communication!

Between?

Those who want the software Those who build the software

Balance is critical

Business side dominates?

Developers dominate?

Resource allocation

• Need to work together to make it a shared problem.

Developers Responsibility of resource allocation!

• May trade quality for additional features• May only partially implement the feature• May solely take decisions that should involve

business side

Only business shoulders the responsibility

• Lengthy upfront requirements negotiation and signoff

• Features are dropped as the deadline nears

We cannot predict a software schedule!

As users see software, they come up with new ideas

Too many intangibles!

Developers have hard time estimating!

So what do we do?

Make decisions on information often

Spread the decision-making across the project

This is where user stories come in

What are stories? 3C

Card

Conversation

Confirmation

Story Card

• Written on Note cards• Should have estimates,

notes etc• No jargon• Written in direct speech

Conversation!

• Details behind the story• Emerges when team

talks with Product owner, customer / customer proxy

Confirmation

• Acceptance tests

Example of Story

– A user can search for jobs by attributes like location, salary range, job title, company name, and the date the job was posted

– A user can view information about each job that is matched by a search

– A user can view detailed information about a company that has posted a job

More Samples!

Conversation?

What is an Epic?

– A user can search for a job

– A company can post job openings

Theme?

Why write Stories?

Words are imprecise!

• Main dish comes with soup or salad and bread– (Soup or salad) and Bread?– (Soup) or (Salad and bread)?

• The User can enter a name. it can be 127 characters– Must the user enter a name?– Can it be other than 127 chars?

Words are imprecise contd…

• The system should prominently display a warning message whenever the user enter invalid data– What does should mean?– What does prominently display mean?– Is invalid data defined elsewhere?

Stories shift the focus from writing to talking

“You built what I asked for, but it’s not what I need”

Stories are equally understandable by developers and customers

Support iterative development

Stories are right size for planning

Stories support participatory design

Stories emphasize user’s goals not system attributes

• What are we building?– The product shall have a gas engine– The product shall have four wheels• The product shall have rubber tyre mounted to each

wheel

– The product shall have a steering wheel– The product shall have a steel body

What if we had stories instead?

Don’t forget the purpose

• The story text we write on cards is less important than the conversations we have

User Story Template

“As a <Some Role>I want <Some Need>So that <Some Benefit>”

A “real” Story card

As an <unregistered user of [an online game]>

I want <to setup a trial team>

So that <I can try the game without signing up>

Advantages of “As a user, I want” user story template

• With “I want” phrase, person more closely identifies with stories and person’s mind goes instantly to imagining as he or she is such-and-such.

• Helps in prioritizing story. The product owner is forced to understand the feature, benefits and value (“so that” phrase)

• This format is a best practice towards executable requirements and a domain specific language

What is criteria for good story?

• Independent• Negotiable• Valuable to users or customers• Estimable• Small• Testable

Independent

• Introduce as little dependencies as possible

• Break up work in vertical layers

• Dependent stories should not be done in same sprint

Independent• BAD

– Company can pay for a job posting with a visa card– Company can pay for a job posting with a master card– Company can pay for a job posting with an American Express

• Good– Company can pay for a job posting with a credit card

• Also good– Company can pay for a job posting with one type of a credit card– Company can pay for a job posting with two additional types of credit

cards

Negotiable

• Not contracts• Describe what, not how• Should be imprecise

and open for negotiation

• Should encourage conversation

• Not requirements, leads to requirements

Valuable

• If we can’t specify value of a story we probably don’t know enough about it

Valuable to purchasers or users• Throughout the development process, the development team

will produce documentation suitable for an ISO 9001 audit. -- purchaser

• Not– All connections to the database are through a connection pool– All error handling and logging is done through a set of common

classes.• If there’s a technical story put it in terms the business can

understand– Up to fifty users should be able to use the application with a five-user

database license– All errors are presented to the user and logged in a consistent manner.

Estimable*

• “Make login button look ‘cool’” is not estimable

• If we can’t estimate a story we cant commit to it

• Lack domain knowledge• Lack technical knowledge• Story is too big

* Yes, it is a word!

Small

• Size does matter– A user can plan a

vacation (EPIC)

• Based on team and capabilities and technology in use.

• Allows more granular tracking of progress

• Easier to estimate (less error prone)

Testable

• If you can’t test it, how do you know– It’s done?– It’s done right?

• Should have done criteria– Business criteria– Technical Debt– Cross-cutting concerns– Regression failures

allowable?

Testable

• User must find the software easy to use.– A novice user is able to complete common workflows

without training• A user must not have to wait long for a screen to

appear.– New screens appear within two seconds in 95% of all

cases.• Strive for 99% automation• Automate on the code not just the UI.– Fit is good (Fitnesse)– NUnit is good

What are not stories?

Screen mockup (not story)

Use case (not story)

UML diagrams (not story)

Specification (not story)

Some guideline for story writing

Include user roles in stories

• as a (role) I want (function) because (business value)

Write for one user

• Job seeker can remove a resume• Job seeker can remove her own resume

Write in active voice

• Bad– A resume can be posted by a job seeker

• Good– A job seeker can post a resume

Customer writes the story

• Not developer– But they can suggest

• Which maybe is write them then get signoff

– Offer advice

• In the end the customer has to prioritize them so they need to know the language on the card fully.

Don’t number the cards

• Pointless over head• You’ll be shredding cards and creating cards often

Don’t forget the purpose

• Reminder about the requirements not the document of the requirements.

• Don’t replace the conversation by adding the detail.

References

• http://www.mountaingoatsoftware.com/presentations/103-user-stories

• http://www.slideshare.net/guest446c0/user-stories-1015064

• http://www.danube.com/webinars• All images collected through google

Questions?

top related