Slide 1

Slide 1 text

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