User Stories Applied Mike Cohn Chapter 1 An

  • Slides: 24
Download presentation
User Stories Applied, Mike Cohn Chapter 1: An Overview Composed of three parts: 1.

User Stories Applied, Mike Cohn Chapter 1: An Overview Composed of three parts: 1. Written description of the story (used for planning and as a reminder) 2. Conversations about the story that provide the necessary details 3. Acceptance Criteria that provide for the tests that convey and document details and that can be used to determine when a story is complete Card, Conversation, Confirmation 1

The 3 C’s Card User stories are written on cards. The card does not

The 3 C’s Card User stories are written on cards. The card does not contain all the information that makes up the requirement. Instead, the card has just enough text to identify the requirement, and to remind everyone what the story is. The card is a token representing the requirement. • It’s used in planning. • Notes are written on it, reflecting priority and cost. 2

The 3 C’s Conversation The requirement itself is communicated from customer to programmers through

The 3 C’s Conversation The requirement itself is communicated from customer to programmers through conversation: An exchange of thoughts, opinions, and feelings. This conversation takes place over time, particularly when the story is estimated (usually during release planning), and again at the iteration planning meeting when the story is scheduled for implementation. The conversation is largely verbal, but can be supplemented with documentation. The best supplements are examples; the best examples are executable, We call these examples confirmation. . 3

The 3 C’s Confirmation • No matter how much discussion or how much documentation

The 3 C’s Confirmation • No matter how much discussion or how much documentation produced, you can’t be as certain as you need to be about what is to be done. • The third C in the user story’s key aspects adds confirmation which is the acceptance test! • At the beginning of the iteration, the customer communicates to the programmers what is needed… that they’ve done what is needed. • Acceptance tests that will be used to show that the story has been implemented correctly. 4

Example: Airline Registration System FEATURE: User wishes to book a flight Example of USER

Example: Airline Registration System FEATURE: User wishes to book a flight Example of USER STORIES (what the users need to be able to do) User needs to book a one way flight User needs to specify the number of passengers for this booking User needs to indicate departure airport User needs to indicate date and time of departure User needs to indicate destination airport User needs to know date and time of arrival User needs to book a roundtrip flight User needs to indicate date and time of return departure User needs to know date and time of return arrival

Hypothetical: Big. Money. Jobs job posting & search website Story Card 1. 1 An

Hypothetical: Big. Money. Jobs job posting & search website Story Card 1. 1 An initial user story written on a note card Sample stories: • A user can post her resume to the website. • A user can search for jobs • A user can limit who can see her resume User stories refer to functionality valued by users! Some not so good examples: • The software will be written in C++ • The program will connect to the database through a connection pool 6

Big Money Jobs: The story … the details… Start with a blank webpage… identify

Big Money Jobs: The story … the details… Start with a blank webpage… identify the tasks needed to search for a job. The tasks represent the all of what is needed to meet the user’s need. List the unanswered questions about the search: • • What values can users search on? Does the user have to be a member of the site? Can search parameters be saved? What information is displayed for matching jobs? These details can be expressed as additional stories Note: better to have more stories than to have stories that are too large 7

Large “epic” stories (not doable during one iteration) 1. A user can search for

Large “epic” stories (not doable during one iteration) 1. A user can search for a job 2. A company can post job openings Best to have stories requiring functionality that can be designed, coded and tested between a half day and two weeks by one or a pair of programmers. Splitting “epic” stores (example – splitting 1. above): 1. 1 A user can search for jobs by attributes like location, salary range, job title, company name, and date the job was posted 1. 2 A user can view information about each job that is matched by a search 1. 3 A user can view detailed information about a company that has posted a job 8

Each Story… “How long does it have to be? ” • Must define the

Each Story… “How long does it have to be? ” • Must define the expectations of the users • Cards… list the expectations on the back 1. 3 A user can view detailed information about a company that has posted a job Acceptance tests (what is needed to verify design correctness) Try it with an empty job description Try it with a really long job description Try it with a missing salary Try it with a six-digit salary (Reminders about the testing needed can be written on the back of the story card) Note: Initially, stories are meant to be short and incomplete Tests can be added, modified and/or removed later 9

Discussing the details of each story • The conversation is “essential” Details are “worked”

Discussing the details of each story • The conversation is “essential” Details are “worked” out between Product Owner (Client) and the team These details are recorded client confirmation • Discussion between the Product Owner (customer/user) and the developers • Acceptance criteria Agreement on implementation of the story is documented by tests needed to demonstrate that the story has been implemented correctly 10

The Customer Team On and IDEAL project: The Customer Team has at least one

The Customer Team On and IDEAL project: The Customer Team has at least one person with unlimited understanding or knowledge of what is needed, can prioritizes work for the developers, and can answers their questions That person provides all the stories and knows what user needs the software must provide In Scrum this is the “Product Owner” For large corporations the Product Owner would be the company’s “Business Analyst” Or…whomever has an understanding of what is required to ensure that the software will actually meet the needs of its intended users 11

What is the process like? Product Owner / Business Analyst (that “one” person) •

What is the process like? Product Owner / Business Analyst (that “one” person) • Involved throughout the duration of the project • Expected to be actively involved in defining and approving user stories • Expected to identify as many user “types” as needed For a travel reservation website, the list might include: – frequent flyers – vacation planners – etc. 12

Why the Product Owner must write the stories… Two reasons: 1. Each story must

Why the Product Owner must write the stories… Two reasons: 1. Each story must be written in the language of the business (the “domain”) … no technical jargon… 2. Each story must be prioritized to ensure that the team is always working on the highest priority requirements (represented by the set of user stories) 3. The Product Owner is the team’s Client … the primary product visionary… They are best at describing the expected behavior of the product 13

14

14

Iteration (Sprint) Planning Product Owner and the team… must collaborate • Iteration length is

Iteration (Sprint) Planning Product Owner and the team… must collaborate • Iteration length is decided upon… and used for the duration of the project (Senior Project: 2 weeks) • At the end of each iteration, the team is expected to deliver go-live, fully usable functionality • Go Live means Done! Product Owner: • Is involved at the start of each Sprint … and at the end of each Sprint • Responsible for specifying Features, User Stories, and acceptance criteria • Responsible for ensuring that the project is constantly moving toward delivery of the desired product 15

… more on the “iterative” process Velocity For two week iterations, the Team estimates

… more on the “iterative” process Velocity For two week iterations, the Team estimates how much work (user stories) can be scheduled for each Iteration (the Sprint) The initial estimate! Used as a rough estimate of the work that can be completed in each Iteration and how many Iterations will be needed Release plan Stories are listed in priority order … The team “pulls” a number of highest priority (not “done”) stories for each iteration The number of stories pulled represents the team’s estimate of that can be implemented by the end of each Sprint The estimate represents the The sum of the story points for each of these stories represents the estimated “velocity” for the Sprint (the team’s estimated Prior to the start of each iteration, the Product Owner can make “mid-course” corrections as needed 16

Planning Releases and Iterations Product Owner prioritizes the stories based on: – Desirability of

Planning Releases and Iterations Product Owner prioritizes the stories based on: – Desirability of the feature for a broad base of users – Desirability of the feature for a small number of important users – Cohesiveness of the story in relation to the other stories in the release Product Owner considers priorities of developers – Technical risk of certain stories – Complementary nature of other stories Product Owner prioritizes the stories to maximize the value to be delivered 17

Stories and Story Points Story points are a unit of measure for expressing an

Stories and Story Points Story points are a unit of measure for expressing an estimate of the overall effort that will be required to fully implement a Product Backlog item or any other piece of work. When we estimate with story points, we assign a point value to each story. Story points are a arbitrary measure used by Scrum teams … used to measure the effort required to implement a story In simple terms its a number that tells the team how hard the story is. Hard could be related to complexity, Unknowns and effort. 18

What are Acceptance Tests? Written early in the iteration… early communication of customer team’s

What are Acceptance Tests? Written early in the iteration… early communication of customer team’s assumptions & expectations to developers Sample story: “A user needs to pay for the items in her shopping cart with a credit card. ” Simple tests (written on back of story card) 1. Test with Visa, Master. Card and American Express (pass) 2. Test with Diner’s Club (fail) 3. Test with a Visa debit card (pass) 4. Test with gook, bad and missing card ID numbers (back of card) 5. Test with expired cards 6. Test with different purchase amounts (include one over the card limit) 19

Why change from a Requirement’s Document or Use Cases? Users Stories: – Emphasize verbal

Why change from a Requirement’s Document or Use Cases? Users Stories: – Emphasize verbal rather than written communication – Are understood by the developers – Are the right size for planning – Represent work fit for iterative development – Are free of technical jargon (comprehensible to both developers and the customer team) – Encourages deferring detail until you have the best understanding about what you really need “Each user story (clearly) represents a discrete piece of functionality that clearly represents what a user would be able to do… ” 20

21

21

SCRUM Project Framework at a Glance

SCRUM Project Framework at a Glance

SCRUM Sprint Framework at a Glance Faculty Weekly Adviser Scrum (Team meeting Faculty Advisor)

SCRUM Sprint Framework at a Glance Faculty Weekly Adviser Scrum (Team meeting Faculty Advisor) Sprint Product Owner assesses work completed… approval and changes Team assesses work … what was learned how could they improve Go-live functionality added to the “Build”

Iteration assignments: stories and their “costs” Planned Iterations Story I (5 points) split into

Iteration assignments: stories and their “costs” Planned Iterations Story I (5 points) split into Story Y (3 points) and Story Z (2 points) 24