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