The Ultimate Developer Collaboration Technique
PING PONG
PAIR PROGRAMMING
Anthony Sciamanna
@asciamanna
Nick Goede
@ngoede
February 1, 2018
Slide 2
Slide 2 text
The Problem
Slide 3
Slide 3 text
Pair Programming is really interesting,
everybody talks about it but no one does it.
- Bryan Helmkamp, Founder and CEO Code Climate, Baruco 2013
“
Slide 4
Slide 4 text
Traditional Pair Programming Challenges
What we’ve heard…
Slide 5
Slide 5 text
I never get to type!
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
Whenever I am driving my
pair just looks at their phone.
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
I can’t ever get into flow
when pairing.
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Talking about everything
I’m doing slows me down.
Slide 12
Slide 12 text
I have to solve the BIG
problems before pairing
Slide 13
Slide 13 text
Programming By
Coincidence
AKA Debugger
Driven Development
Slide 14
Slide 14 text
Software Death Spiral
Slide 15
Slide 15 text
Ping Pong Pair Programming
Slide 16
Slide 16 text
Pair
Programming
Test-Driven
Development
Ping Pong Pair
Programming
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
Nick Anthony
Writes a failing test Makes the test pass
Writes the next failing test
Makes the next test pass
Only when all tests pass either person can refactor
Continue until there are no more tests to write
Slide 19
Slide 19 text
Solutions
Slide 20
Slide 20 text
I never get to type!
Slide 21
Slide 21 text
Whenever I am driving my
pair just looks at their phone.
Slide 22
Slide 22 text
Rapid Switching Intervals
Slide 23
Slide 23 text
I can’t ever get into flow
when pairing.
Slide 24
Slide 24 text
Save States
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Talking about everything
I’m doing slows me down.
Slide 27
Slide 27 text
Collaborative
Iterative
Slide 28
Slide 28 text
Evolutionary Design
&
Refactoring
Slide 29
Slide 29 text
Collaboration &
Communication
Slide 30
Slide 30 text
Code Comprehension
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
Demo
The Bill Payer App
Allows users to view, manage, and
autopay their bills
Slide 33
Slide 33 text
Task
Calculate mortgage grace date
• Business Days are weekdays
• If due date is a non-business day
then pay bill on next business day
Slide 34
Slide 34 text
Anthony
https://youtu.be/WZsLNrnS4yk
Slide 35
Slide 35 text
Nick
https://youtu.be/WujNniqzf9U
Slide 36
Slide 36 text
Anthony
https://youtu.be/OoSvlJv24hE
Slide 37
Slide 37 text
Nick
https://youtu.be/Kl6UbPtJNGo
Slide 38
Slide 38 text
Anthony
https://youtu.be/kUkD_Ak6PLc
Slide 39
Slide 39 text
Nick
https://youtu.be/5VEuhMLS_Mk
Slide 40
Slide 40 text
Task
Calculate water bill grace date
• Business Days are weekdays
• If due date is a non-business day then
pay bill on previous business day
Slide 41
Slide 41 text
Anthony
https://youtu.be/6coH9P0Yuxg
Slide 42
Slide 42 text
Nick
https://youtu.be/CSzFSzsKaXM
Slide 43
Slide 43 text
Anthony
https://youtu.be/1gfihiwx8dw
Slide 44
Slide 44 text
Nick
https://youtu.be/4SfL6WWsCjo
Slide 45
Slide 45 text
Nick
https://youtu.be/1eFAMNBStCo
Slide 46
Slide 46 text
Anthony
https://youtu.be/P_u5OWjAcWo
Slide 47
Slide 47 text
Try Ping Pong Pair Programming!
Effective and a lot of FUN
Slide 48
Slide 48 text
CONTACT US!
For more information about this talk go to
bit.ly/phillyxp-4p
Nick Goede
@ngoede
Anthony Sciamanna
@asciamanna