Slide 1

Slide 1 text

The Ultimate Developer Collaboration Technique PING PONG PAIR PROGRAMMING Anthony Sciamanna @asciamanna Nick Goede @ngoede Heart of Agile Pittsburgh – April 27, 2017

Slide 2

Slide 2 text

Nick Anthony 2008 2005 Acquisition - 2013 Early 2014 Nine years of experience working together, practicing and coaching teams on XP XP Organization 2000

Slide 3

Slide 3 text

The Problem

Slide 4

Slide 4 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 5

Slide 5 text

Traditional Pair Programming Challenges What we’ve heard…

Slide 6

Slide 6 text

I never get to type!

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Whenever I am driving my pair just looks at their phone.

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

I can’t ever get into flow when pairing.

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Talking about everything I’m doing slows me down.

Slide 13

Slide 13 text

Developers new to TDD & pair programming think they have to solve the big problems before they start pairing

Slide 14

Slide 14 text

Programming By Coincidence AKA Debugger Driven Development

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

2. Write only enough production code to make the test pass 1. Create a failing unit test (not compiling counts as a failing test) 3. Refactor only when all unit tests are passing Ping Pong Pair Programming

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 both people agree 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

I can’t ever get into flow when pairing.

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Talking about everything I’m doing will slow me down.

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

DEMO The Bill Payer App Allows users to view, manage, and autopay their bills

Slide 27

Slide 27 text

USER STORY As a bill payer I want my mortgage bill paid on its due date or the first business day after its due date (when it falls on a non- business day), so that I can maximize the time that I keep my money in my account without incurring penalties

Slide 28

Slide 28 text

Anthony https://youtu.be/WZsLNrnS4yk

Slide 29

Slide 29 text

Nick https://youtu.be/WujNniqzf9U

Slide 30

Slide 30 text

Anthony https://youtu.be/OoSvlJv24hE

Slide 31

Slide 31 text

Nick https://youtu.be/Kl6UbPtJNGo

Slide 32

Slide 32 text

Anthony https://youtu.be/kUkD_Ak6PLc

Slide 33

Slide 33 text

Nick https://youtu.be/5VEuhMLS_Mk

Slide 34

Slide 34 text

USER STORY As a bill payer I want my water bill paid on its due date or the first business day before its due date (when it falls on a non-business day), so that I can maximize the time that I keep my money in my account without incurring penalties

Slide 35

Slide 35 text

Anthony https://youtu.be/6coH9P0Yuxg

Slide 36

Slide 36 text

Nick https://youtu.be/CSzFSzsKaXM

Slide 37

Slide 37 text

Anthony https://youtu.be/1gfihiwx8dw

Slide 38

Slide 38 text

Nick https://youtu.be/4SfL6WWsCjo

Slide 39

Slide 39 text

Nick https://youtu.be/1eFAMNBStCo

Slide 40

Slide 40 text

Anthony https://youtu.be/P_u5OWjAcWo

Slide 41

Slide 41 text

Try Ping Pong Pair Programming!

Slide 42

Slide 42 text

CONTACT US! We love talking about Agile Software Development, XP, developer practices, helping development teams improve how they work and their code, etc. Nick Goede @ngoede [email protected] http://nickgoede.com Anthony Sciamanna @asciamanna [email protected] http://anthonysciamanna.com Github Repo – Each Step of Ping Pong Pair Programming Demo https://github.com/asciamanna/ping-pong-pair-programming-talk