agile analysis with use cases: balancing utility with simplicity

79
Agile Analysis with Use Cases Balancing Simplicity with Utility Presented by Ted Husted NimbleUser twitter.com/TedHusted

Upload: ted-husted

Post on 05-Dec-2014

2.352 views

Category:

Technology


0 download

DESCRIPTION

A mainstay of conventional requirements gathering, use cases can ease the transition to agile methodologies. In this practical program, we explore: * how to write uses cases * how to adapt uses cases to agile projects * how to automate acceptance testing with use cases Ted Husted is a Rochester NY Business Analyst and member of the IIBA. In 2008, he joined NimbleUser, a .NET integrator specializing in non-profits and associations. Ted is co-author of JUnit in Action and a regular speaker at the Ajax Experience, ApacheCon, and various user groups.

TRANSCRIPT

Page 1: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Agile Analysis with Use CasesBalancing Simplicity with Utility

Presented by Ted HustedNimbleUsertwitter.com/TedHusted

Page 2: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How is Pong like a Use Case?

Page 3: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 4: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 5: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 6: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 7: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 8: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 9: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we play use case?1. System sends puck toward player.2. Player moves paddle to meet puck.3. Puck misses paddle.4. System increments score for other player.5. System resets acceleration factor.6. Round repeats for other player.

Page 10: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Is that all there is?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 11: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Is that all there is?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 12: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Is that all there is?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 13: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Is that all there is?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 14: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Is that all there is?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 15: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Is that all there is?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 16: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we win?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins

Page 17: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How do we win?2a Puck trajectory is too steep2b Puck angles for a corner shot3a Player returns puck3b Puck intersects center segment3c Puck intersects outer segment5a Player wins1. Score exceeds the maximum number of points. 2. System presents game over banner.3. End.

Page 18: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What about diagrams?

Page 19: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How is a user story different?

Page 20: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What’s wrong with this story?Pong is a two-dimensional sports game which simulates table tennis. The player controls an in-game paddle by moving it vertically across the left side of the screen, and can compete against either a computer controlled opponent or another player controlling a second paddle on the opposing side. Players use the paddles to hit a ball back and forth. The aim is for a player to earn more points than the opponent; points are earned when one fails to return the ball to the other.

Page 21: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What’s wrong with this story?Pong is a two-dimensional sports game which simulates table tennis. The player controls an in-game paddle by moving it vertically across the left side of the screen, and can compete against either a computer controlled opponent or another player controlling a second paddle on the opposing side. Players use the paddles to hit a ball back and forth. The aim is for a player to earn more points than the opponent; points are earned when one fails to return the ball to the other.

Page 22: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What’s wrong with this story?Pong is a two-dimensional sports game which simulates table tennis. The player controls an in-game paddle by moving it vertically across the left side of the screen, and can compete against either a computer controlled opponent or another player controlling a second paddle on the opposing side. Players use the paddles to hit a ball back and forth. The aim is for a player to earn more points than the opponent; points are earned when one fails to return the ball to the other.

Page 23: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What’s wrong with this story?Pong is a two-dimensional sports game which simulates table tennis. The player controls an in-game paddle by moving it vertically across the left side of the screen, and can compete against either a computer controlled opponent or another player controlling a second paddle on the opposing side. Players use the paddles to hit a ball back and forth. The aim is for a player to earn more points than the opponent; points are earned when one fails to return the ball to the other.

Page 24: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What can go wrong with this story?

Page 25: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Agile Analysis with Use CasesA mainstay of conventional requirements gathering, use cases can ease the transition to agile methodologies. In this practical program, we explore:

how to write uses caseshow to adapt uses cases to agile projectshow to automate acceptance testing with use cases

Page 26: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What’s our agenda?

Page 27: Agile Analysis with Use Cases: Balancing Utility with Simplicity

About Ted HustedCo-author of JUnit in Action (1st Edition)

Speaker at Ajax Experience, ApacheCon Business Analyst, NimbleUserMember, International Institute for Business Analysis (IIBA)Executive VP, Rochester NY IIBAtwitter.com/TedHusted

Page 28: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Do you take questions?

Slides Available at slideshare.net / ted.husted

Page 29: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How to write use casesThe

Why, What, Where, When, Who, and How

of use cases

Page 30: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Why? Actors Interact

Page 31: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Why? Change Happens

Page 32: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Why? Systems Adapt

Page 33: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Main Scenario

Page 34: Agile Analysis with Use Cases: Balancing Utility with Simplicity

First Draft1. System sends puck

toward player.2. Player moves paddle to

meet puck.3. Puck intersects paddle 4. …

Second Draft1. System sends puck

toward player.2. Player moves paddle to

meet puck.3. Puck misses paddle.4. …

What? Main Scenario

Page 35: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Extensions

Page 36: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Annotations

Page 37: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Annotations

Page 38: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Annotations1a Browser does not provide cookie 1. System redirects to login page and passes

original URL through a parameter2. System authenticates user (UC-4)3. Return at Step 1

Page 39: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Annotations1a Browser does not provide cookie 1. System redirects to login page and passes

original URL through a parameter2. System authenticates user (UC-4)3. Return at Step 1

Page 40: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? Annotations1a Browser does not provide cookie 1. System redirects to login page and passes

original URL through a parameterhttps://www.domain.org/sso/Signon.aspx?redirectUrl=default.aspx

2. System authenticates user (UC-4)3. Return at Step 1

Page 41: Agile Analysis with Use Cases: Balancing Utility with Simplicity

What? AnnotationsExtensions

1a Browser does not provide cookie 1. System redirects to login page and passes

original URL through a parameter2. System authenticates user (UC-4)3. Return at Step 1

Annotations1a1 Example URL: https://www.domain.org/sso/Signon.aspx?redirectUrl=default.aspx

Page 42: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Where? Can use cases do it all?

Page 43: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Where? Requirements Outline 1. Vision and Scope Document2. Use Cases3. Software Requirements Specification4. Business Rules

Page 44: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Where? Requirements Outline 1. Findings2. Requirements3. Use Cases4. Technical Specification

Page 45: Agile Analysis with Use Cases: Balancing Utility with Simplicity

When? Requirements Analysis

Page 46: Agile Analysis with Use Cases: Balancing Utility with Simplicity

When? Organize and Allocate

Page 47: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Who? You …

Page 48: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Who? Them …

Page 49: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Who? Us!

Page 50: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Workflow1. Identify the actors2. Identify the use cases3. Identify actor/use case relationships4. Outline use cases5. Refine use cases

Page 51: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Workflow1. Identify the actors2. Identify the use cases3. Identify actor/use case relationships4. Outline use cases5. Refine use cases

Page 52: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Workflow1. Identify the actors2. Identify the use cases3. Identify actor/use case relationships4. Outline use cases5. Refine use cases

Page 53: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Workflow1. Identify the actors2. Identify the use cases3. Identify actor/use case relationships4. Outline use cases5. Refine use cases

Page 54: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Workflow1. Identify the actors2. Identify the use cases3. Identify actor/use case relationships4. Outline use cases5. Refine use cases

Page 55: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Workflow1. Identify the actors2. Identify the use cases3. Identify actor/use case relationships4. Outline use cases5. Refine use cases

Page 56: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Template1. Name2. Brief description3. Actors4. Main Scenario5. Extensions

1. Pre-conditions2. Post-conditions3. Other stakeholders4. System/sub-system5. Special requirements

Page 57: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Use Case Template1. Name2. Brief description3. Actors4. Main Scenario5. Extensions

1. Pre-conditions2. Post-conditions3. Other stakeholders4. System/sub-system5. Special requirements

Page 58: Agile Analysis with Use Cases: Balancing Utility with Simplicity

How? Right-size templates1. Name2. Brief description3. Actors4. Main Scenario5. Extensions6. Pre-conditions7. Post-Conditions8. Other stakeholders9. System/sub-system

10. Special requirements

Page 59: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt?

Page 60: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Agile

Page 61: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Agile

Page 62: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Backlog1. Name2. Brief description3. Actors4. Main Scenario5. Extensions

1. Pre-conditions2. Post-conditions3. Other stakeholders4. System/sub-system5. Special requirements

Page 63: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Iteration Planning1. Name2. Brief description3. Actors4. Main Scenario5. Extensions

1. Pre-conditions2. Post-conditions3. Other stakeholders4. System/sub-system5. Special requirements

Page 64: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Agile? Backlog Pruning1. Name2. Brief description3. Actors4. Main Scenario5. Extensions

1. Pre-conditions2. Post-conditions3. Other stakeholders4. System/sub-system5. Special requirements

Page 65: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Agile? Epic Iteration1. Name2. Brief description3. Actors4. Main Scenario5. Extensions

1. Pre-conditions2. Post-conditions3. Other stakeholders4. System/sub-system5. Special requirements

Page 66: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Training Materials

Page 67: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Quality Assurance

Page 68: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? TestingOpen Signin Page

Signin page: http://domain.org/sso/ Enter credentials

Username: mg Password: va123123

Process Succeeds System Creates Cookie

System Redirects

Page 69: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? TestingOpen Signin Page

Signin page: http://domain.org/sso/ Enter credentials

Username: mg Password: va123123

Process Succeeds System Creates Cookie

System Redirects

Page 70: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? TestingOpen Signin Page

Signin page: http://domain.org/sso/ Enter credentials

Username: mg Password: va123123

Process Succeeds System Creates Cookie

System Redirects

Page 71: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? TestingOpen Signin Page

Signin page: http://domain.org/sso/ Enter credentials

Username: mg Password: va123123

Process Succeeds System Creates Cookie

System Redirects

Page 72: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? TestingOpen Signin Page

Signin page: http://domain.org/sso/ Enter credentials

Username: mg Password: va123123

Process Succeeds System Creates Cookie

System Redirects

Page 73: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Automate?

Page 74: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Automate? Testing

Page 75: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Automate? Testing

Page 76: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Adapt? Testing

http://seleniumhq.org/

Page 77: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Resources

http://www.rose-hulman.edu/class/csse/csse371/csse371-2007-2008/Lectures/usecases.ppt

Page 78: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Any questions?

Slides Available at slideshare.net / ted.husted

Page 79: Agile Analysis with Use Cases: Balancing Utility with Simplicity

Inventor of Pong, Alan Alcorn

DisclaimerAlan Alcorn is not Ted’s cousin,

but he did invent Pong, though without the help of use cases.

Use cases and Pong can both make you cross-eyed