Agile Requirements with User Stories. Overview

Similar documents
Your Coach: Paul Hodgetts

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Verizon Enterprise Center CALNET 3 Invoices User Guide

The Use Case Technique: An Overview

T Software Testing and Quality Assurance Test Planning

CS 5704: Software Engineering

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

User-centered System Design. Agile

Requisitions REQ_300. Requisitions Requisitions

Chapter 3 Agile Software Development

An Introduction to Scrum

Chapter 4 Document Driven Approach for Agile Methodology

Agenda. About Me. Goals. Collaborate, Build, Test, Deploy: Essential SCM Practices for Teams. Background. SCM Patterns Questions

A Practical Approach to Project Management in a Very Small Company

Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999.

QUICKBOOKS ONLINE ACCOUNTANT. QuickBooks Online Certification Training Guide

Copyright Software Engineering Competence Center

Processes and Life- Cycles. Kristian Sandahl

Software Engineering Lecture 5 Agile Software Development

First Data Personal Financial Manager (PFM) FAQ s

Acceptance Test Driven Development

Copyright Basware Corporation. All rights reserved.. Permissions Guide Basware P2P 18.1

USER MANUAL. U.S. Network Wholesale Marketplace

Introduction to Agile/Extreme Programming

Added ability to log on to multiple corporate sites. Added ability to view the Conveyor Speed only if using Tunnel Master wbc.

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Project Management CSC 310 Spring 2018 Howard Rosenthal

Introduction to Cognos Analytics and Report Navigation Training. IBM Cognos Analytics 11

QT9 ERP Job Management Software. Compliance. Paperless. User Friendly. Powerful.

Test Evaluation. Test Facets. Customer understandable. Spell Check. Idempotent Tests

QuickBooks Online Edition. Usability Test Results. April 2007

The ABC of Agile Business Change. James Yoxall BCS 17 September, 2013

NetSuite OpenAir/NetSuite Connector Guide April

Owning An Agile Project: PO Training Day 2

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Processes and Life- Cycles. Kristian Sandahl

Connecting Time Matters/Billing Matters and QuickBooks. 35*45 Consulting - Global 7 Second System

Business Change Support Inc.

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Deltek Touch Time & Expense for Vision. User Guide

What s New in PBS v12.04 by Module

Version Countries: US, CA. Setup and User Manual (include user demo scenarios in red) For Microsoft Dynamics 365 Business Central

Adding new monthly accounts via the admin portal

Chapter 3 Agile Software Development. Part 1b

FGFOA 2017 Focus on the Future

Communicate and Collaborate with Visual Studio Team System 2008

Lecture 2: Project Management, Part 1: Requirements, WBS, Scheduling, and Risk Management. Prof. Shervin Shirmohammadi SITE, University of Ottawa

SEPA ready, accounts complete. Sage Instant Accounts Now SEPA compliant

Johanna Rothman Part II Design and Manage an Agile and Lean Project Chapter 5 Start Your Agile Project Right. Copyright 2017

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Agile Project Management and Boards Users Guide aqua v

Agile transformation is hard in large organizations JAOO Kati Vilkki

Then enter your PIN, also created during the enrollment process. After entering this data, select Submit.

Requirements Analysis

Test Management: Part I. Software Testing: INF3121 / INF4121

Demo Script. Order-to-Invoice (Services) Classification: Internal and for Partners. SAP Business ByDesign Reference Systems.

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design

Discover SAGE 50 ACCOUNTS ESSENTIALS

A/P Invoice Processing Module

Agile Manifesto & XP

Lecture 8 Agile Software Development

User Stories Applied, Mike Cohn

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Billing Methods Guide

Why Businesses Love Payables Lockbox

Deltek Touch Time & Expense for GovCon 1.2. User Guide

Links Modular Solutions Version Release Notes

Business Manager User Playbook

PayWay. User Guide. Version 1.4 November Page 1

User Stories and Use Cases

An Agile Projects Introduction Course #PMCurrent-1

Agile at Mid-Scale. Al Shalloway. Introducing FLow for Enterprise Transformations (FLEX)

Information Technology Audit & Cyber Security

TABLE OF CONTENTS DOCUMENT HISTORY

Lesson 5 Using Lists

Agile Projects 7. Agile Project Management 21

Agile Quality Management

CSC301. Scrum, detailed view of an agile process. CSC301, Winter 2016

Introduction to Agile and Scrum

1. What lists can be imported from Excel spreadsheets, when setting up a QuickBooks Online company?

USER MANUAL NTNDOL.COM

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

WELCOME TO THE WEB SHIPPING USER GUIDE

Agile Development Processes. CSCE Lecture 3-08/31/2017

QUICKBOOKS ONLINE ACCOUNTANT. QuickBooks Online Certification Training Guide

Testing Masters Technologies

Two Branches of Software Engineering

Employer Self Service Portal. Employer Self-Service Handbook AASIS Employer Users Version

Dana Innovations. Customer Portal Training Guide

Software Design COSC 4353/6353 D R. R A J S I N G H

COMP 6481 Fall 2006 System Requirement Specifications

From Concept to Product Backlog

RELEASE NOTES MEX V (Build ) MEX Ipswich Road Annerley QLD PO BOX 6118 Buranda QLD 4102

Making PayPal work for you. Welcome Kit

Create Items Variations Manual

Transcription:

Agile Requirements with User Stories Part of the Intro to Agile Track Gerard Meszaros ClearStream Consulting gerard@clrstream.com IUS-1 Overview What s A User Story? Why Do Things Differently? How Do We Use User Stories? Where do Stories Come From? IUS-2 1

A Note on Terminology User Story is the XP term Each agile method has it s own terms Equivalent terms exist in most other agile methods E.g. Scrum: Product Backlog Item FDD: Feature All agile methods rely on some sort of featurebased requirements I use User Story and Feature interchangeably IUS-3 A User Story is a unit of work to develop functionality that: Is very specific (has concrete examples) Provides value to the customer Can be tested independently of other (later) features Can be finished in a single iteration consists of 3 major components: Story Card + Conversation + Story Tests IUS-4 2

Sample User Stories A user can: Generate an invoice for a subscription charge. Generate an invoice that includes usage-based charges. Finalize a customer s invoice and send it to them. Generate invoices for all customers. Generate invoices for all customers in a single billing cycle. Maintain customer data Select customers for invoice finalization using drag & drop. An invoice cannot be sent to a customer until it has been finalized. An invoice that has been finalized cannot be regenerated or modified in any way. Each story adds value as soon as it is IUS-5 Sample Story Card A user can generate invoices for all customers in a single Billing Cycle IUS-6 3

Sample Conversation What s a Billing Cycle So each Billing Cycle has a day of the month associated with it? Can it be any day of the month? Can more than one Billing Cycle have the same day of the month associated with it? A Billing Cycle is a way to group Customers who all have their invoice generated on the same day of the month. That s right. In theory, it could be but in practice, we find once cycle each week is enough. No, but that s an interesting idea. We could use that to IUS-7 Sample Story Tests A user can generate invoices for all customers in a single Billing Cycle. Verify Basic Functionality Define two Billing Cycles A and B Define 2 customers A1 and A2 and add them to B Define another 2 customers B1 and B2 and add them to B Request invoice generation for all customers in Billing Cycle A Verify invoices were generated for A1 and A2 Verify no invoices were generated for B1 and B2. Verify Other Functionality: Etc. IUS-8 4

Overview What s A User Story? Why Do Things Differently? How Do We Use User Stories? Where do Stories Come From? IUS-9 What Makes a Project Agile? Deliver Value Early Get ROI earlier; don t front-end load the project Deliver Value Often Many opportunities to v learn and change minds Respond Easily to Changes in Requirements & Encourage Be Able to do this in a Sustainable Fashion Reduce the inertia caused by hard-to-change artefacts IUS-10 5

Agile Requirements Philosophy Do as little work as possible without sacrificing quality Just Enough: Just in Time: Maximize the comprehensiveness of requirement specifications, while minimizing the number and formality of artifacts Reduce the potential for waste (in the form of unused, outdated, or untrusted requirements) Just Because: Balance the above with: risk tolerance level, openness to change, corporate standards, politics, etc. IUS-11 Sample Traditional Requirement: 2.2.1 Invoicing A user can generate an invoice (consisting of one or more subscription or usage charges) for one or all customer. The user can select the customers whose invoices are to be generated using a multi-selection list box or using Add/Remove buttons to move the customers from the All Customers pane to the Selected Customers pane. The system should remember the last set of customers for whom an invoice was generated. An invoice cannot be generated for a customer until the sales manager has approved them. An invoice cannot be generated for a customer until all mandatory data elements have been provided. These include name, contact information (mailing address, phone #), title, and company name. Customers can be created with as little as just a name but they cannot be invoiced. When the user is satisfied with the invoice for a customer, they may finalize it and then send it to the customer. Once finalized, the invoice cannot be regenerated or modified in any way. A Customer IUS-12 6

Sample Requirement As Use Cases Manage User Manage Customer Manage Rates Generate Invoices View Invoice Finalize Invoice Send Invoice Each Use Case has many alternate paths some with higher value than others. Some paths are understood now while others may require further thinking. Most Use Cases cannot be tested by themselves Use Cases are the wrong granularity. Too big yet too small! IUS-13 Agile Projects Incremental Development Agile Project Qualities Time-boxed Iterations Maximize value delivered per $ Prefer direct communication over documentation User Stories Incremental Requirements Small enough to fit Self-Consistent value Story Cards + Conversation + Story Tests IUS-14 7

User Stories are a Planning Mechanism Not a requirements capture mechanism! Iteration 2 Stories Iteration 3 Stories Iteration 4 Storie Started Started Started IUS-15 User Stories are a Planning Mechanism Stories are: A way for Customer to tell Devt what they want A way to talk about and remember what requirements exist, not the details of the requirements A way to talk about what work needs to be done and what value it provides. A way for the customer to drive the project plan and to monitor progress transparently A way to decide what is in/out of a scope for a Project/Release/Iteration IUS-16 8

User Stories an Alternative to WBS Stories are an alternative to Work Breakdown Structure (WBS) of traditional project plans: Dark Period Activity Analysis Design Coding Testing Functionality FeatureFeatureFeature Module Module Module Feature Breakdown Structure: Functionality Story 1 Story 2 Story 3 Activity Analysis Design Coding Testing On agile projects, we define the project plan in terms of what will be delivered rather than what work steps will be performed IUS-17 Overview What s A User Story? Why Do Things Differently? How Do We Use User Stories? Where do Stories Come From? IUS-18 9

User Stories in Process User stories are the starting point for developing everything else: User Stories Release Planning Game Tasks Story Tests Iteration Planning Game Unit Tests many, many conversations!! Development Usable Software Other Artefact User Manuals Design Documents (Just Enough) Use Cases (Just Because) IUS-19 Stories & Planning Stories are selected for a release or iteration Based on ROI: Business value delivered, and Estimated cost Business value can be any of: Reduced effort/cost Improved quality or consistency Reduced risk Increased flexibility Improved usability IUS-20 10

* Examples of Business Value Automate a previously manual process Do something with less effort Reduce the possibility of human error Ensure consistency of process Enforce business rules Provide alternative ways to do something Provide audit trail of business activity Better integration between systems Keep stakeholders informed of progress Used for Prioritization during Planning IUS-21 Stories & Estimation Planned functionality is costed per user story We estimate per story, not per work type Because that is what the customer understands and values Because stories are what are used for planning If estimating is too hard or not possible, split the story into smaller stories that can be estimated more easily or do an experiment if it is a technology or skills issue IUS-22 11

Where Do Stories Come From? Written by the customer, not the developers Though development can make suggestions Before/during Planning Game or story workshop Use Role Modeling to identify stakeholders E.g. Lightweight Use Case modeling Stakeholders and their goals Different stakeholders should participate End-users identify End User Stories Operations people identify Operations User Stories Usee StoryOTypes to right size the stories Don t Throw the Baby Out With The Bath Water! Use Whatever Techniques Work For You IUS-23 Overview What s A User Story? Why Do Things Differently? How Do We Use User Stories? Where do Stories Come From? IUS-24 12

Story Cards are A Promise for a later conversation The traditional low tech, high touch way of capturing User Stories Highly participative: Easily moved around, organized by team An invoice cannot be generated for a customer until the sales manager has approved them. Physical cards are optional! Distributed teams have trouble using story cards Many teams use online tools such as XPlanner Concept of planning token is not optional! IUS-25 Getting Story Granularity Right Smaller Stories facilitate release/iteration planning Right-sizing is major challenge for agile teams. Split a user story into smaller stories when: Too large to build in one iteration Too large to estimate confidently Various parts have different business value Various parts have different likelihood of change IUS-26 13

Right-Sizing Using Storyotypes Storyotypes are Story Stereotypes : Heuristics for decomposing requirements into smaller user stories A set of guidelines for identifying different kinds of functionality in stories A set of guidelines for combining story fragments into cohesive stories UIV BR NF AS IUS-27 Four Common Storyotypes New Basic Functionality Automates some main scenario with minimal user interface Alternate Scenario Automates alternate scenario (variation of functionality) Business Rule Defines some rule and provides handling for when rule is broken User Interface Variation Changes the user interface in some way (usually makes it fancier, but could just provide a different way to do the same thing) UIV BR NF AS IUS-28 14

New Functionality Stories Generate a very simple invoice consisting of a single subscription charge for a single customer. (Bootstrap Story) Simple UI (Enter Customer # and press submit) No data validation or rules enforcement Verify by querying database or printing it out NF View a customer s (generated) invoice. Finalize a customer s invoice and send it to them. Create/View customer data Some value is provided as soon as these are IUS-29 Alternate Scenario Stories Generate an invoice that includes usage-based charges. The usage data is read in from a flat file and the usage is charged at a rate of $1 per unit of usage. The usage rate can be set via a user interface. Generate the invoice and view it to verify the rate is being applied correctly. Generate invoices for all customers. Select a set of customers whose invoices are to be generated. Ticking check boxes and pressing Submit Remember the last set of customers for whom an invoice was generated. Show the selection screen and have them already selected. AS IUS-30 15

UI Variation Stories Generate (or view) the Invoice for a single customer by clicking on a hyperlink Generate (or view) the Invoice for a single customer by clicking on a custom icon Select customers using: Simple dual list box with add/remove buttons. Drag & Drop into a Selected Customers listbox. Add Customers to a Shopping Cart UIV IUS-31 Business Rule Stories An invoice cannot be sent to a customer until it has been finalized. An invoice that has been finalized cannot be regenerated or modified in any way. An invoice cannot be generated for a customer until the sales manager has approved them. This also requires a simple UI to approve the customer (probably described in the Maintain Customer use case.) An invoice cannot be generated for a customer until all mandatory data elements have been provided. These include name, contact information (mailing address, phone #), title, and company name. Customers can be created with as little as just a name but they cannot be invoiced. Only the sales manager can approve the customer. This implies some kind of login capability so that the system can be aware of who is using the system. Authentication (that is, security) could be another story. BR IUS-32 16

Now What? Keep These as Our Stories or Combine Them? Depends on Size, Priority and Stability Need to combine them if they cannot be tested separately. May choose to combine them if they are too small to bother managing separately, and Same degree of importance, confidence, stability UIV BR NF AS IUS-33 Conclusions User Stories are a way to enumerate requirements Right size for planning incr. development of functionally & documentation Every story has ROI: Business value (Return) Estimated cost (Investment) Story Cards are just a planning token; the real requirements come later In conversations with the customer, Captured as Story Tests IUS-34 17

Further Reading Agile Requirements Tailoring the Functional Requirements Specification Process to Improve Agility. Tutorial by Jennitta Andrea, Gerard Meszaros Slides available by request. Managing the Bootstrap story in an XP Project Paper by Jennitta Andrea presented at XP2001. Storyotypes - Using Stereotypes to Split Bloated XP Stories Paper by Gerard Meszaros presented at XP/Agile Universe 2004 www.clrstream.com/downloads Structuring Use Cases with Goals http://alistair.cockburn.us/crystal/articles/sucwg/structuringucswithgoals.htm Use Cases 10 Years Later http://alistair.cockburn.us/crystal/articles/uctyl/usecasestenyearslater.htm User Stories Applied Book by Mike Cohn published by Addison Wesley 2004 IUS-35 Time for Questions? Introduction to User Stories Gerard Meszaros ClearStream Consulting gerard@clrstream.com IUS-36 18

Additional Material IUS-37 Agile Requirements Techniques This technique Reduce number Reduce detail Reduce formality Reduce Handoffs Start later Retire earlier Deliver incrementally reduces wasted effort related to... Telling someone what they don t need to know. Saying the same thing multiple times. Telling someone what they already know. Spending more time than is necessary to get the message across. Loss of tacit knowledge caused by throwing over the wall Getting caught in change churn, and analysis paralysis Maintaining artefacts that are no longer needed. Getting feedback too late to accommodate change Reproduced courtesy of Jennitta Andrea and Gerard Meszaros IUS-38 19

Advanced Story Techniques Bootstrap Story A special case Hardest one to plan, estimate Chapters are a way to break a large bootstrap story into smaller chunks Planning multi-release projects Just Enough look-ahead to do budgeting and feasibility Use SuperStories as placeholders for more detailed (and too numerous User Stories) IUS-39 Combining stories Combine several stories into one when: Too small to bother managing separately E.g. MicroFeatures, or small bugs Cannot be tested separately E.g. Cannot verify x without building y Do not provide value individually E.g. Data entry provides no value without logic that uses it IUS-40 20

More on Story-O-Types IUS-41 New Functionality Goal: Automate a task or process in a particular situation Impact: 1 or more new Transactions or Use Cases Define Main Course per Transactions or Use Case Often requires Business Logic & Presentation Layer logic Examples: Basic Change Order - Create and View for Simple Product Basic Change Order - Update for Simple Product Notes: May include the UI to access the functionality, but only one kind of UI (typically, the simplest of several IUS-42 21

Variation on Functionality Goal: Increase # of situations supported by task or process automation Impact: 1 or more existing Transaction or Use Cases» May add an alternate Course per Use Case to handle the variation» May require changes to the UI to support new functionality Examples: Various kinds of payment Change Order - Extra steps for certain kinds of products Notes: May include the UI to access the extended functionality, but only the same kind of UI as the existing functionality IUS-43 Business Rule Goal: Reduce the need for users to enforce the rules of the business Impact: Affects 1 or more Transactions or Use Cases that change affected Business Object(s)» may add new Use Case preconditions, verification steps (existing courses), and alternate course for verification failure May affect Presentation Layer (for Input Validation AKA System Edit Checks) Examples: Feature-Feature dependency or incompatabilty Prevent unsupported Scenarios Enforce assumptions IUS-44 22

User Interface Variation Goal: Make it easier for users to do an existing task Impact: Will change Presentation Layer logic Should not change Transaction or Use Case logic Examples: Given an existing story to:» Add Item to Invoice by selecting from list The following could each be a separate UI story:» Add Item to Invoice via Drag&Drop» Create Invoice via HTML (Web Browser)» Create Invoice via IVR (Interactive Voice Response)» Create Invoice via WAP (Wireless Access Protocol) IUS-45 How Can You Apply Them? This Starter Set of Storyotypes Came From IS Domain; May Apply to Your Domain, Too. Look for Common Types (Patterns) of Functionality and Make up Your Own Storyotypes. E.g. Do something to : One Customer, All Customers, Selected Customers IUS-46 23

Use Cases vs User Stories IUS-47 Sample Story Any Product in the Product Catalog can be ordered via the e-store. Some of the more expensive Products can be purchased using several payments. These payments can either be billed later or set up via preauthorized bank or credit card withdrawals. When an Admin user defines a product, they can enable the recurring payment feature if the price is over $50. IUS-48 24

Stories vs Use Cases Define Product Price Get Product Price One-time Price One-time Price Start Start Verify Product Info Retrieve Basic Price Recurring Price? Calculate Recurring Payment Recurring Price? Retrieve Recurring Payment Y PreAuth Payment? N Persist Price Info Log Failure Format Price Info Success Failure Success Recurring Price Business Rule Enforced Recurring Price IUS-49 25