happy sad evil_weird

53
Happy, Sad, Evil, Weird Driving Feature Development With Use Case Planning

Upload: ben-lewis

Post on 28-Jul-2015

118 views

Category:

Technology


0 download

TRANSCRIPT

Happy, Sad, Evil, Weird

Driving Feature Development With Use Case Planning

Who Am I?

Ben Lewis

Engineering Lead Blogger

OS Contributor Mentor

What Am I Talking About?

Use Case Planning

Save Money

Look Ahead

Usually…

But there’s also…

Bad Data

Bad Data

Hacker Attack

Bad Data

Hacker Attack

Chaos

What Is Use Case Planning?

Mark ShackletteUniversity of Chicago CS Department

Use Case Analysis: Purpose and Implementation

http://people.cs.uchicago.edu/~mark/51023/Ucstyleg.html

What’s required to build it?

How should it behave?

Who’s involved? (People, systems and processes)

We’re Building A System

Who’s Involved?

Product Owner

Designer

Developer

QA Technician

User Experience Driven

Design for the user

Talk about behavior in user’s terms

Think through all of the behavior you can

Scenarios

Why Consider Use Cases?

Everyone can understand plain language

Agreements will stick better

Fewer things fall through the cracks

Prevents bugs

Guides architectural decisions

It’s a Sketch

Use Case Story

Use Case Diagram

UX Diagram

Wireframe

Design Comp

Development Code

Production

Easy to Change

Hard to Change

How To Plan Use Cases

Answer Four Questions

1. Who are the actors and what are their roles?

2. What’s the purpose of this feature?

3. What are the use cases?

4. How do the use cases relate to each other?

Who are the actors and what are their

roles?

What’s the purpose of this feature?

What are the use cases?

How do the use cases relate to each other?

A Use Case Diagram

"Use case restaurant model" by Kishorekumar 62. Licensed under CC BY-SA 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Use_case_restaurant_model.svg#/media/File:Use_case_restaurant_model.svg

Turn Use Cases Into

Stories

An Example

1. Who are the actors and what are their

roles?User - exchange money for services

Merchant - exchange services for money

Platform Owner - provide the platform for money

SaaS Platform (The App) - make the exchange possible

CC Service (Stripe) - Verify and charge card, store data

Credit Card Company - Transfer funds if available

2. What’s the purpose of this feature?

Take money from the user

Give it to the merchantand SaaS platform owner

3. What are the use cases?

Happy Paths

Sad Paths

Evil Paths

Weird Paths

Sad Paths

User fills out the credit card form with invalid information

Credit card is rejected

Stripe accepts card on client but server charge fails

Evil Paths

Hacker breaks into server and steals data and system logs

User figures out how to change price in hidden form field

Hacker launches CSRF attack and creates bogus charges

Weird Paths

Stripe server goes down

JavaScript is disabled, form gets submitted to SaaS server

Connection to Stripe is interrupted

Happy Paths

User fills out form with valid data and clicks submit

Credit card charge is accepted

4. How do the use cases relate to each

other?SaaS Platform

Stripe

Credit Card Company

💣

💣

💣

💸

Stories!As a user, when I complete the form with

invalid information and click submit, I should see the invalid inputs become highlighted, and I should see validation errors telling me what went wrong so that I can correct my error and

successfully buy products.

Stories!

…and 11 others

As a user, when I complete the form with invalid information and click submit, I should

see the invalid inputs become highlighted, and I should see validation errors telling me what went wrong so that I can correct my error and

successfully buy products.

Conclusion

Use Case Planning

Goals

Design with the user experience in mind

Think about how the feature should behave

Agree on the answer to “what are we building?”

Benefits

Gives all the stakeholders a voice

Uncovers edge cases early

Low cost way of changing a feature

Process

1. Who are the actors and what are their roles?

2. What’s the purpose of this feature?

3. What are the use cases?

4. How do the use cases relate to each other?

Answer these four questions:

Results

(Stories)

fin.

Ben Lewis

[email protected]

@fluxusfrequency

fluxusfrequency.github.io

github.com/fluxusfrequency

Peanut Gallery