agile use cases: balancing utility with simplicity - may 2009

84
© International Institute of Business Analysis™ Agile Analysis with Use Cases: Agile Analysis with Use Cases: Balancing Utility with Balancing Utility with Simplicity Simplicity May Program Guest Speaker: Ted Husted May 7, 2009 ROCHESTER, NY Chapter

Upload: iiba-rochester-ny

Post on 05-Dec-2014

4.537 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 member of the International Institute for Business Analysis (IIBA), and the Executive Vice President Elect of the Rochester NY Chapter. Ted has published three books and several magazine articles on software development and testing, and he speaks at professional conferences and conventions on a regular basis. Ted Husted works in Pittsford NY with VanDamme Associates, a .NET integrator specializing in non-profits and associations.

TRANSCRIPT

Page 1: Agile Use Cases: Balancing Utility with Simplicity - May 2009

© International Institute of Business Analysis™

Agile Analysis with Use Cases: Balancing Agile Analysis with Use Cases: Balancing Utility with SimplicityUtility with Simplicity

May Program

Guest Speaker:Ted Husted

May 7, 2009

ROCHESTER, NYChapter

Page 2: Agile Use Cases: Balancing Utility with Simplicity - May 2009

22© International Institute of Business Analysis™

AgendaAgenda 1. President’s Welcome and Chapter Update

2. Upcoming Programs 3. May Program with Guest Speaker Ted Husted

Page 3: Agile Use Cases: Balancing Utility with Simplicity - May 2009

33© International Institute of Business Analysis™

Chapter UpdateChapter Update 1.  Chapter Board of Director Elections 2.  Chapter Charter 3.  Chapter Membership 4.  Chapter's social networks to join 5. Chapter Surveys 6.  Volunteer Opportunities

Chapter Website: rochesterny.theiiba.org

Page 4: Agile Use Cases: Balancing Utility with Simplicity - May 2009

44© International Institute of Business Analysis™

Upcoming ProgramsUpcoming Programs Thursday, 6/4 – Chapter Launch Dinner Celebration and Special Guest Speaker Ernest Hicks on Effective Communication at Sanibel Cottage

Thursday, 7/16 – Summer Networking (i.e. – Happy Hour) at Pomodoro Grill

Thursday, 8/13 – Summer Networking at Pomodoro Grill

Thursday, 9/24 – Requirements Management Lunch Program with Guest speaker David Walker from Borland at Sanibel Cottage

 

Page 5: Agile Use Cases: Balancing Utility with Simplicity - May 2009

55© International Institute of Business Analysis™

Upcoming ProgramsUpcoming Programs Thursday, 10/22 – Lunch event with Matt Smith from iRise at Sanibel Cottage

Thursday, 11/19 – Lunch event at Sanibel Cottage

Thursday, 12/10 – Holiday Party at Sanibel Cottage

Page 6: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Agile Analysis with Use CasesBalancing Simplicity with Utility

Presented by Ted Husted

VanDamme Associates, Inc.

twitter.com/TedHusted

Page 7: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How is Pong like a Use Case?

Page 8: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 Use Cases: Balancing Utility with Simplicity - May 2009

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 Use Cases: Balancing Utility with Simplicity - May 2009

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 11: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 12: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 13: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 14: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 15: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Is that all there is?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 16: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Is that all there is?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 17: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Is that all there is?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 18: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Is that all there is?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 19: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Is that all there is?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 20: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Is that all there is?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 21: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How do we win?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins

Page 22: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How do we win?

• 2a Puck trajectory is too steep

• 2b Puck angles for a corner shot

• 3a Player returns puck

• 3b Puck intersects center segment

• 3c Puck intersects outer segment

• 5a Player wins• 1. Score exceeds the maximum number of points.

2. System presents game over banner.3. End.

Page 23: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What about diagrams?

Page 24: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How is a user story different?

Page 25: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 26: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 27: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 28: Agile Use Cases: Balancing Utility with Simplicity - May 2009

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 29: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What can go wrong with this story?

Page 30: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Agile Analysis with Use Cases

• 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

Page 31: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What’s our agenda?

Page 32: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Do you take questions?

Slides Available at slideshare.net / rochesterny.theiiba.org

Page 33: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How to write use cases

The Why, What, Where, When, Who,

and Howof use cases

Page 34: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Why? Actors Interact

Page 35: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Why? Change Happens

Page 36: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Why? Systems Adapt

Page 37: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Main Scenario

Page 38: Agile Use Cases: Balancing Utility with Simplicity - May 2009

First Draft

1. System sends puck toward player.

2. Player moves paddle to meet puck.

3. Puck intersects paddle

4. …

Second Draft

1. System sends puck toward player.

2. Player moves paddle to meet puck.

3. Puck misses paddle.

4. …

What? Main Scenario

Page 39: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Extensions

Page 40: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Annotations

Page 41: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Annotations

Page 42: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Annotations

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

original URL through a parameter

2. System authenticates user (UC-4)

3. Return at Step 1

Page 43: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Annotations

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

original URL through a parameter

2. System authenticates user (UC-4)

3. Return at Step 1

Page 44: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Annotations

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

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

2. System authenticates user (UC-4)

3. Return at Step 1

Page 45: Agile Use Cases: Balancing Utility with Simplicity - May 2009

What? Annotations

Extensions

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

original URL through a parameter

2. System authenticates user (UC-4)

3. Return at Step 1

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

redirectUrl=default.aspx

Page 46: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Where? Can use cases do it all?

Page 47: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Where? Requirements Outline

1. Vision and Scope Document

2. Use Cases

3. Software Requirements Specification

4. Business Rules

Page 48: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Where? Requirements Outline

1. Findings

2. Requirements

3. Use Cases

4. Technical Specification

Page 49: Agile Use Cases: Balancing Utility with Simplicity - May 2009

When? Requirements Analysis

Page 50: Agile Use Cases: Balancing Utility with Simplicity - May 2009

When? Organize and Allocate

Page 51: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Who? You …

Page 52: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Who? Them …

Page 53: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Who? Us!

Page 54: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Workflow

1. Identify the actors

2. Identify the use cases

3. Identify actor/use case relationships

4. Outline use cases

5. Refine use cases

Page 55: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Workflow

1. Identify the actors

2. Identify the use cases

3. Identify actor/use case relationships

4. Outline use cases

5. Refine use cases

Page 56: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Workflow

1. Identify the actors

2. Identify the use cases

3. Identify actor/use case relationships

4. Outline use cases

5. Refine use cases

Page 57: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Workflow

1. Identify the actors

2. Identify the use cases

3. Identify actor/use case relationships

4. Outline use cases

5. Refine use cases

Page 58: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Workflow

1. Identify the actors

2. Identify the use cases

3. Identify actor/use case relationships

4. Outline use cases

5. Refine use cases

Page 59: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Workflow

1. Identify the actors

2. Identify the use cases

3. Identify actor/use case relationships

4. Outline use cases

5. Refine use cases

Page 60: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Template

A. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 61: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Use Case Template

A. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 62: Agile Use Cases: Balancing Utility with Simplicity - May 2009

How? Right-size templatesA. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-Conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 63: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt?

Page 64: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Agile

Page 65: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Backlog

A. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 66: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Iteration Planning

A. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 67: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Agile? Backlog Pruning

A. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 68: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Agile? Epic Iteration

A. Name

B. Brief description

C. Actors

D. Main Scenario

E. Extensions

F. Pre-conditions

G. Post-conditions

H. Other stakeholders

I. System/sub-system

J. Special requirements

Page 69: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Training Materials

Page 70: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Quality Assurance

Page 71: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Testing• Open Signin Page 

– Signin page: http://domain.org/sso/ 

• Enter credentials – Username: mg  – Password:  va123123

• Process Succeeds – System Creates Cookie

• System Redirects

Page 72: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Testing• Open Signin Page 

– Signin page: http://domain.org/sso/ 

• Enter credentials – Username: mg  – Password:  va123123

• Process Succeeds – System Creates Cookie

• System Redirects

Page 73: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Testing• Open Signin Page 

– Signin page: http://domain.org/sso/ 

• Enter credentials – Username: mg  – Password:  va123123

• Process Succeeds – System Creates Cookie

• System Redirects

Page 74: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Testing• Open Signin Page 

– Signin page: http://domain.org/sso/ 

• Enter credentials – Username: mg  – Password:  va123123

• Process Succeeds – System Creates Cookie

• System Redirects

Page 75: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Testing• Open Signin Page 

– Signin page: http://domain.org/sso/ 

• Enter credentials – Username: mg  – Password:  va123123

• Process Succeeds – System Creates Cookie

• System Redirects

Page 76: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Automate?

Page 77: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Automate? Testing

Page 78: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Automate? Testing

Page 79: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Adapt? Testing

http://seleniumhq.org/

Page 80: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Resources

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

Page 81: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Any questions?

Slides Available at slideshare.net / rochesterny.theiiba.org

Page 82: Agile Use Cases: Balancing Utility with Simplicity - May 2009

About Ted Husted

• Co-author of JUnit in Action (1st Edition)

• Speaker at Ajax Experience, ApacheCon

• Business Analyst, VanDamme Associates

• Member, International Institute for Business Analysis (IIBA)

• Executive VP Elect, Rochester NY IIBA• twitter.com/TedHusted

Page 83: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Inventor of Pong, Alan Alcorn

Disclaimer

Alan 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

Page 84: Agile Use Cases: Balancing Utility with Simplicity - May 2009

Thank you Ted!

Next Chapter Meeting:June 4, 2009

with Ernest Hicks“A speaker you don’t want to miss”