Scenario

3 downloads 2413 Views 3MB Size Report
FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT. DEVELOPMENT. 8 YEARS ... ROLL CALL / Silo'd Stakeholders. FIFTY SHADES OF BEHAVIOR ...
Richard Yu Fifty Shades of Behavior Driven Development

BIO/ Personal Information DEVELOPMENT

EMPLOYMENT 8 YEARS

ROBERT W BAIRD & CO MILWAUKEE, WI

CONTACT @richard_yu FINANCIAL SERVICES [email protected]

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

2

WELCOME / Set The Tone

COMFORT

QUESTIONS

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

ENJOY THE SHOW

3

Fifty Shades Of bdd

PROBLEMS / Introduction

WELCOME! Group Therapy

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

5

PROBLEMS / Kaizen

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

6

PROBLEMS / Estimation

WHAT IS YOUR CURRENT PROJECT? HOW LONG WILL IT TAKE TO COMPLETE?

WHY

FACTORS

- TIME IS IMPORTANT - RESOURCE ALLOCATION

- SIZE & COMPLEXITY - UNKNOWN UNKNOWS - DONE CRITERIA - ROULETTE EFFECT

- PRIORITIZATION

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

7

PROBLEMS / Cranking Out The Code public void DevelopmentProcess()

STARTING

TESTING

COMPLETING

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

8

PROBLEMS / Communication

NON-STANDARD LANGUAGE

THRASHING DIFFERENT INTERPRETATIONS FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

9

PROBLEMS / Thrashing Scenario

THE DRIVE THRU THRASH ITERATION 1: “I want the order time to show up on the screen”

12:34:23 PM ITERATION 2: “The order time is from the start of the order to the end of the order”

43 SECONDS ITERATION 3: “Start of the order is when it’s submitted”

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

10

PROBLEM IDENTIFICATION / What’s going on here?

COMMUNICATING INTENT

IDEAS CROSSING BOUNDARIES

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

11

PROBLEM IDENTIFICATION / Boundaries

INTERPRETED

BRAIN

IDEA/INTENT

TRANSFERRED

MEDIUM

TRANSFERRED

INTERPRETED OTHER BRAIN

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

12

BOUNDARY PROBLEMS / Invalid Intent Delivery

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

13

ROLL CALL / Silo’d Stakeholders “I WANT A FEATURE”

PRODUCT OWNER

“I WANT TO KNOW IF THE FEATURE WILL PROVIDE VALUE”

ANALYZER

“I WANT TO KNOW HOW THE FEATURE SHOULD WORK”

DEVELOPER

“I WANT TO KNOW HOW TO BUILD THE FEATURE”

VERIFIER

“I WANT TO KNOW IF THE FEATURE WORKS”

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

14

BREAK IT DOWN / Divide and Conquer

USER STORY PROJECT

USER STORY USER STORY

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

15

BEHAVIOR DRIVEN DEVELOPMENT / Introduction

USER STORY AS A {ROLE} I WANT {SOMETHING} SO THAT {BENEFIT}

WORK COLLABORATIVELY CAPTURE BEHAVIOR STANDARD LANGUAGE

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

16

ACCEPTANCE CRITERIA / Grooming And Gathering

MAKE A PHONE APP

USER STORY AS A BUSINESS USER I WANT A PHONE CALL APP SO THAT MY USERS CAN MAKE CALLS

GROOM ACCEPTANCE CRITERIA FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

17

ACCEPTANCE CRITERIA / Grooming

MAKE A PHONE APP

A user will be able to press any key on the number pad. The app should only be able to dial if there are the appropriate amount of digits entered. The call button should only be enabled if it matches the amount of valid digits. When 7 or 10 digits or 11 digits with a leading 1 are in the display then the call button will be enabled. If the number 1 digit is the only digit entered, then the call button will be enabled because this will forward them to the message service. When the user presses call, then the number in the display will be dialed. FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

18

ACCEPTANCE CRITERIA FORMAT / Standardization

SCENARIO BEHAVIOR DESCRIPTION GIVENPRECONDITIONS WHENAN ACTION OCCURS THENA VERIFIABLE RESULT FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

19

ACCEPTANCE CRITERIA / Phone App Version 2

PHONE APP ORIGINAL REQUIREMENT If the number 1 digit is the only digit entered, then the call button will be enabled because this will forward them to the message service.

GROOMED TO G/W/T Scenario: Shortcut to message service Given a Phone App And there are no digits in the display When the 1 digit is entered Then the call button should be enabled

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

20

ACCEPTANCE CRITERIA / Phone App Version 2

PHONE APP ORIGINAL REQUIREMENT The call button should only be enabled if it matches the amount of valid digits. When 7 or 10 digits or 11 digits with a leading 1 are in the display then the call button will be enabled.

GROOMED TO G/W/T Scenario: Call button enabled with 7 digits entered Given a Phone App And there are 6 digits in the number display When the User enters in another digit Then the call button should be enabled

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

21

ACCEPTANCE CRITERIA / Phone App Version 2

PHONE APP ORIGINAL REQUIREMENT The call button should only be enabled if it matches the amount of valid digits. When 7 or 10 digits or 11 digits with a leading 1 are in the display then the call button will be enabled.

GROOMED TO G/W/T Scenario: Call button enabled with 11 digits and leading 1 Given a Phone App And there are 10 digits in the number display And the first digit is a 1 When the User enters in another digit Then the call button should be enabled

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

22

ACCEPTANCE CRITERIA / Put it all together

PHONE APP ORIGINAL AC

SCENARIOS

A user will be able to press any key on the number pad. The app should only be able to dial if there are the appropriate amount of digits entered. The call button should only be enabled if it matches the amount of valid digits. When 7 or 10 digits or 11 digits with a leading 1 are in the display then the call button will be enabled. If the number 1 digit is the only digit entered, then the call button will be enabled because this will forward them to the message service. When the user presses call, then the number in the display will be dialed.

Scenario: Call button enabled with 11 digits Scenario: Call button enabled with 7 digits Scenario: Shortcut to message service Scenario: Call button disabled Scenario: Call button enabled with 10 digits Scenario: Dial the number

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

23

UBIQUITOUS RESULT / Rickrolled

“YOU KNOW THE RULES AND SO DO I” FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

24

SHICK QUATTRO / Grooming

PRODUCT OWNER ITERATIVE FIRST ATTEMPT ANALYZER DEVELOPER EVERYONE IS INVOLVED CAPTURE BEHAVIOR VERIFIER START THINKING LIKE OTHER MEMBERS FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

25

SMARTER, NOT HARDER / Advantages

DEVELOPER LIVING DOCUMENTATION LEANER CODE TEST AUTOMATION

VERIFIER EDGE CASES

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

26

DEVELOPMENT / Traditional Start

CLASSES METHODS

UNIT TEST/MANUAL TEST

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

27

FLIP IT AROUND / The Italian Restaurant

The Golive Arden

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

28

DEVELOPMENT / TDD & ATDD

WRITE FAILING TEST WRITE ENOUGH CODE TO PASS TEST REFACTOR CODE

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

29

PROBLEMS FIXED? / Estimation

USER STORY ESTIMATION

Scenario: Call button enabled with 11 digits Scenario: Call button enabled with 7 digits

UNKNOWN UNKNOWNS

Scenario: Shortcut to message service

SIZE & COMPLEXITY

Scenario: Call button disabled

DONE CRITERIA

Scenario: Call button enabled with 10 digits

ROULETTE EFFECT

Scenario: Dial the number

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

30

PROBLEMS FIXED? / Development Process

USER STORY START

Scenario: Call button enabled with 11 digits Scenario: Call button enabled with 7 digits Scenario: Shortcut to message service

TEST

Scenario: Call button disabled Scenario: Call button enabled with 10 digits Scenario: Dial the number

COMPLETE

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

31

PROBLEMS FIXED? / Communication

USER STORY COMMUNICATING INTENT

Scenario: Call button enabled with 11 digits Scenario: Call button enabled with 7 digits

IDEAS CROSSING BOUNDARIES Scenario: Shortcut to message service Scenario: Call button disabled

DIFFERENT INTERPRETATIONS NON STANDARD LANGUAGE

Scenario: Call button enabled with 10 digits Scenario: Dial the number

THRASHING

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

32

RATS / Blank Room

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

33

RATS / Room with a cue

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

34

SINGLE CONCEPTS / Ideas

LEFT

BLUE

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

35

KIDS ARE RATS / Brainwise

123456 FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

36

LINKED CONCEPTS / Putting it together

THE ITEM IS

LEFT

OF THE

BLUE

WALL FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

37

KNOCK THE WORDS OUT / Shadowing

CONTINUOUSLY LISTEN AND REPEAT SPEECH WITHOUT HESITATION

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

38

BLANK MIND / Let’s get the language right

THOUGHT without LANGUAGE? LANGUAGE DESCRIBES SYSTEM BEHAVIOR

COLLABORATE FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

39

SILVER BULLET / Is this the answer?

FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

40

SILVER BULLET / Is this the answer?

USER INTERFACE TOO MUCH DESIGN UP FRONT? ARCHITECTURE WHAT THE RULES USED TO BE WHY THE RULES ARE THE WAY THEY ARE FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

41

ESTIMATION SIZE & COMPLEXITY UNKNOWN UNKNOWNS DONE CRITERIA ROULETTE EFFECT

DEV PROCESS STARTING TESTING COMPLETING

COMMUNICATION COMMUNICATING INTENT IDEAS CROSSING BOUNDARIES DIFFERENT INTERPRETATIONS NON STANDARD LANGUAGE THRASHING

TALKITOUT THE TEAM PRODUCT OWNER CAPTURE BEHAVIOR ANALYZER LIVING DOCUMENTATION LEANER CODE DEVELOPER TEST AUTOMATION VERIFIER EDGE CASES

DISADVANTAGES UI TOO MUCH DESIGN UP FRONT ARCHITECTURE WHAT THE RULES USED TO BE WHY THE RULES ARE THE WAY THEY ARE

INSPIRATION / Continuously Improve

CONTINUOUSLY IMPROVE

IDENTIFY PROBLEMS AND WAYS TO FIX THEM FOCUS ON THE WHOLE PROCESS DON’T SHIP SHIT LETS HAVE OWNERSHIP OF VALUE FIFTY SHADES OF BEHAVIOR DRIVEN DEVELOPMENT

43

THANK YOU! @richard_yu

RICK ASTLEY

[email protected]

SUPER TROOPERS

KATY PERRY

NEVER GONNA GIVE YOU UP

HOT ‘N COLD

JOURNEY DON’T STOP BELIEVIN’

WYNC RADIOLAB WORDS