User Stories Applied, Mike Cohn Chapter 1: An Overview

Slides:



Advertisements
Similar presentations
Armstrong Process Group, Inc. Copyright © , Armstrong Process Group, Inc., and others All rights reserved Armstrong Process.
Advertisements

User Stories Testing 2, October 21.
Writing Good User Stories Bob Schommer, CSP, PMP Senior Project Manager Skyline Technologies, Inc.
User Stories in an Agile Environment Mike McLaughlin, PMP, CSM, CSP Project Management Institute Kansas City Mid America Chapter March 19, 2012.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Agile development By Sam Chamberlain. First a bit of history..
Actors and use cases Use-case diagram Brief notation Prioritization Fully dressed notation Requirements Functional requirements  Use-cases.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Management 421 Computer Science 350. Overview Project Roles Software Development Process Extreme Programming Management/Developer Interaction in Extreme.
An Agile View of Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
R ELEASE P LANNING. H ELPFUL R ESOURCES Planning Extreme Programming, Kent Beck and Martin Fowler Extreme Programming Installed, Ron Jeffries, Ann Anderson.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
Agile User Stories. What is a User Story? User stories are short, simple description of a feature told from the perspective of the person who desires.
Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
1-1 User Stories Much taken from User Stories Applied: For Agile Software Development Mike Cohn Mountain Goat Software.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
Planning Extreme programming
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Be* Broadband Member Services Participatory Design Workshop.
Software Engineering 2004 Jyrki Nummenmaa 1 Why new software methodologies The classic waterfall-model based techniques are strongly based on the.
User Stories- 2 Advanced Software Engineering Dr Nuha El-Khalili.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Testing under the Agile Method CSCI 521 Software Project Management based on the book Testing Extreme Programming by Lisa Crispin and Tip House.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Introducing an Agile Process to an Organization By Mike Cohn and Doris Ford IEEE Computer.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Project Workflow.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Project Management and the yin & yang of
Software Development.
User Stories 1.
Agile Training Day 2 November 17, 2015.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Use Cases Discuss the what and how of use cases: Basics Benefits
Chapter 5 유스케이스 개요 Introduction to Use Cases
Agile Scrum Management
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Project Workflow.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Mike Cohn - Agile Estimating and Planning
Requirements and User Stories
Chapter 3: The Project Management Process Groups: A Case Study
Scrum MODULE 3 – Part 3.
Burn Down charts for Project Management
What do you need to know about XP?
How to Successfully Implement an Agile Project
Summarizing Our Models to Date
Johanna Rothman Know What “Done” Means Chapter 11
User Stories Applied, Mike Cohn Chapter 2: Writing Stories
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
User Stories Applied, Mike Cohn Chapter 2: Writing Stories
Projects, Assignments, and other Assessments
User Stories Applied, Mike Cohn Chapter 1: An Overview
Extreme Programming.
Software Testing Lifecycle Practice
Scrum in Action.
Agile Development.
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

User Stories Applied, Mike Cohn Chapter 1: An Overview Composed of three aspects: Written description of the story used for planning and as a reminder Conversations about the story that serve to flesh out the details of the story Tests that convey and document details and that can be used to determine when a story is complete Card, Conversation, Confirmation

Airline Registration System FEATURE: User wishes to book a flight USER STORIES: 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: BigMoneyJobs 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 represent functionality valued by users! Not good examples: The software will be written in C++ The program will connect to the database through a connection pool

The Story details… Start with a blank webpage… identify the tasks needed to search for a job. 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 Better to have more stories than stories that are too large

Two large “epic” stories 1. A user can search for a job 2. A company can post job openings Good to have stories that can be 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

Discussing the details of each story The conversation is “key” Product Owner (customer/user) discusses with developers Not the “contract”! Agreement on the story is documented by tests that demonstrate that the story has been implemented correctly

“How long does it have to be?” Must define the expectations of the users Using paper note 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 (reminders about how to test the story) 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 how to test written on the back of the story card) Note: Meant to be short and incomplete Tests can be added and removed later

The Customer Team On and ideal project: One person with unlimited understanding or knowledge, prioritizes work for the developers, answers their questions, That person will use the software when it is finished and writes all the stories. Realistically: Those that can ensure that the software will meet the needs of its intended users For example: testers, the product manager, real users, and interaction designers

What is the process like? Product Owner (Customers and Users): Involved throughout the duration of the project Expected to be actively involved in writing the user stories Included are as many user types as possible For a travel reservation website, include are: frequent flyers vacation planners etc. For user types that are missing, substitute user models

Why the Product Owner must write the stories… Two reasons: Each story must be written in the language of the business, not in technical jargon, so that the customer team can prioritize the stories for inclusion into iterations and releases The Product Owner serves as the primary product visionary… They are best at describing the expected behavior of the product

Iteration Planning Product Owner and developers… collaborate Iteration length is decided upon… and used for the duration of the project At the end of each iteration, developers deliver fully usable code for some subset of the application Product Owner: Is involved during the iteration Specifies acceptance criteria Is responsible for ensuring that the project is constantly moving toward delivery of the desired product

… more on the process Velocity The initial estimate! Releases plan Once the iteration length is selected developers estimate how much work will be done per iteration The initial estimate! Used to make a rough sketch of the work in each iteration and how many iterations will be needed Releases plan Stories are sorted into piles, each representing an iteration The sum of the estimates for each story add-up to the estimated velocity Highest priority stories go “first” Prior to the start of each iteration, the customer team can make “mid-course” corrections

Planning Releases and Iterations Product Owner prioritizes the stories based on: Desirability of the feature to a broad base of users Desirability of the feature to 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

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

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

Why change from Requirements Documents or Use Cases? Users Stories: Emphasize verbal rather than written communication Are comprehensible by the developers Are the right size for planning Work for iterative development Free of technical jargon (comprehensible to both developers and the customer team) Encourage 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 do in a single setting.” or “sitting”