SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
The Ultimate Developer Collaboration Technique
PING PONG PAIR PROGRAMMING
Anthony Sciamanna
@asciamanna
Nick Goede
@ngoede
Heart of Agile Pittsburgh – April 27, 2017
Nick Anthony
20082005
Acquisition - 2013
Early 2014
Nine years of experience working together, practicing and coaching teams on XP
XP Organization
2000
The Problem
Pair Programming is really interesting, everybody
talks about it but no one does it.
- Bryan Helmkamp, Founder and CEO Code Climate, Baruco 2013
“
Traditional Pair Programming Challenges
What we’ve heard…
I never get to type!
Whenever I am driving my pair
just looks at their phone.
I can’t ever get into flow
when pairing.
Talking about everything I’m
doing slows me down.
Developers new to TDD & pair
programming think they have
to solve the big problems
before they start pairing
Programming By Coincidence
AKA Debugger Driven Development
Ping Pong Pair Programming
Pair Programming
Test-Driven
Development
Ping Pong Pair
Programming
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
Nick Anthony
Writes a failing test Makes the test pass
Writes the next failing testMakes 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
Solutions
I never get to type!
Whenever I am driving my pair
just looks at their phone.
I can’t ever get into flow
when pairing.
Talking about everything I’m
doing will slow me down.
DEMO
The Bill Payer App
Allows users to view, manage, and autopay
their bills
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
Anthony
https://youtu.be/WZsLNrnS4yk
Nick
https://youtu.be/WujNniqzf9U
Anthony
https://youtu.be/OoSvlJv24hE
Nick
https://youtu.be/Kl6UbPtJNGo
Anthony
https://youtu.be/kUkD_Ak6PLc
Nick
https://youtu.be/5VEuhMLS_Mk
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
Anthony
https://youtu.be/6coH9P0Yuxg
Nick
https://youtu.be/CSzFSzsKaXM
Anthony
https://youtu.be/1gfihiwx8dw
Nick
https://youtu.be/4SfL6WWsCjo
Nick
https://youtu.be/1eFAMNBStCo
Anthony
https://youtu.be/P_u5OWjAcWo
Try Ping Pong Pair Programming!
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
ngoede@gmail.com
http://nickgoede.com
Anthony Sciamanna
@asciamanna
asciamanna@gmail.com
http://anthonysciamanna.com
Github Repo – Each Step of Ping Pong Pair Programming Demo
https://github.com/asciamanna/ping-pong-pair-programming-talk

Más contenido relacionado

La actualidad más candente

Media Evaluation q4.pptx
Media Evaluation q4.pptxMedia Evaluation q4.pptx
Media Evaluation q4.pptxJakir Hussain
 
Will you make a video for me?
Will you make a video for me?Will you make a video for me?
Will you make a video for me?Megan Zurcher
 
iPhone & Android App Dev - BarCamp Saigon 1
iPhone & Android App Dev - BarCamp Saigon 1iPhone & Android App Dev - BarCamp Saigon 1
iPhone & Android App Dev - BarCamp Saigon 1huyzing
 
Animoto Tutorial
Animoto TutorialAnimoto Tutorial
Animoto Tutorialmrlautest
 
Creating My Trailer
Creating My TrailerCreating My Trailer
Creating My TrailerMeganReanne
 
Evaluation Question 4
Evaluation Question 4Evaluation Question 4
Evaluation Question 4Jakir Hussain
 
Evaluation 6
Evaluation 6Evaluation 6
Evaluation 6Adam Cook
 
Question 6 media
Question 6   mediaQuestion 6   media
Question 6 mediaellie_bird
 
Google I/O 2016 Key notes
Google I/O 2016 Key notesGoogle I/O 2016 Key notes
Google I/O 2016 Key notesmayur akabari
 
Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7Comunidade NetPonto
 
How To Insert Youtube Video Into PowerPoint - Infographic
How To Insert Youtube Video Into PowerPoint - InfographicHow To Insert Youtube Video Into PowerPoint - Infographic
How To Insert Youtube Video Into PowerPoint - InfographicSuperside
 

La actualidad más candente (16)

Powtoon Tutorial
Powtoon TutorialPowtoon Tutorial
Powtoon Tutorial
 
Media Evaluation q4.pptx
Media Evaluation q4.pptxMedia Evaluation q4.pptx
Media Evaluation q4.pptx
 
Google App Inventor
Google App InventorGoogle App Inventor
Google App Inventor
 
Will you make a video for me?
Will you make a video for me?Will you make a video for me?
Will you make a video for me?
 
iPhone & Android App Dev - BarCamp Saigon 1
iPhone & Android App Dev - BarCamp Saigon 1iPhone & Android App Dev - BarCamp Saigon 1
iPhone & Android App Dev - BarCamp Saigon 1
 
Animoto Tutorial
Animoto TutorialAnimoto Tutorial
Animoto Tutorial
 
Creating My Trailer
Creating My TrailerCreating My Trailer
Creating My Trailer
 
Evaluation Question 4
Evaluation Question 4Evaluation Question 4
Evaluation Question 4
 
Evaluation 6
Evaluation 6Evaluation 6
Evaluation 6
 
Question 6 media
Question 6   mediaQuestion 6   media
Question 6 media
 
Google I/O 2016 Key notes
Google I/O 2016 Key notesGoogle I/O 2016 Key notes
Google I/O 2016 Key notes
 
Q6
Q6Q6
Q6
 
Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7Construir Aplicações Silverlight para Windows Phone 7
Construir Aplicações Silverlight para Windows Phone 7
 
Question 6
Question 6Question 6
Question 6
 
Evaluation 6
Evaluation 6Evaluation 6
Evaluation 6
 
How To Insert Youtube Video Into PowerPoint - Infographic
How To Insert Youtube Video Into PowerPoint - InfographicHow To Insert Youtube Video Into PowerPoint - Infographic
How To Insert Youtube Video Into PowerPoint - Infographic
 

Similar a The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming

Rapid Prototyping Nearsoft Workshop
Rapid Prototyping Nearsoft WorkshopRapid Prototyping Nearsoft Workshop
Rapid Prototyping Nearsoft WorkshopMisael Leon
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingLemi Orhan Ergin
 
getshortsai-com-boom_aid=1 (1).pdf
getshortsai-com-boom_aid=1 (1).pdfgetshortsai-com-boom_aid=1 (1).pdf
getshortsai-com-boom_aid=1 (1).pdfJamiulhaque5
 
ASO for Games. How to start ranking in Top Charts.
ASO for Games. How to start ranking in Top Charts.ASO for Games. How to start ranking in Top Charts.
ASO for Games. How to start ranking in Top Charts.AppFollow
 
White Nights Conference 2018
White Nights Conference 2018White Nights Conference 2018
White Nights Conference 2018Maria Kriskovich
 
Evaluation 4 planning
Evaluation 4 planning Evaluation 4 planning
Evaluation 4 planning Meggforeman
 
How To Recruit with YouTube (video)
How To Recruit with YouTube (video) How To Recruit with YouTube (video)
How To Recruit with YouTube (video) Jim Stroud
 
7 Test Ideas to Improve User Onboarding
7 Test Ideas to Improve User Onboarding7 Test Ideas to Improve User Onboarding
7 Test Ideas to Improve User OnboardingApptimize
 
How Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the DesignerHow Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the DesignerJonathan Lieberman
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4Tom
 
How to create saleable video lesson using power point
How to create saleable video lesson using power pointHow to create saleable video lesson using power point
How to create saleable video lesson using power pointChima Ezuo
 
App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)
App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)
App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)TheTool - ASO Tool
 
Designing the User Experience
Designing the User ExperienceDesigning the User Experience
Designing the User ExperienceMarc Escobosa
 
I phone app slideshow
I phone app slideshowI phone app slideshow
I phone app slideshowEuanW
 
What have you learned about technologies from the process of constructing the...
What have you learned about technologies from the process of constructing the...What have you learned about technologies from the process of constructing the...
What have you learned about technologies from the process of constructing the...magrethxx
 
Module 5 task 1 laura vilar
Module 5 task 1 laura vilarModule 5 task 1 laura vilar
Module 5 task 1 laura vilarLaura Vilar
 

Similar a The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming (20)

PhillyXP Pair Programming
PhillyXP Pair ProgrammingPhillyXP Pair Programming
PhillyXP Pair Programming
 
Rapid Prototyping Nearsoft Workshop
Rapid Prototyping Nearsoft WorkshopRapid Prototyping Nearsoft Workshop
Rapid Prototyping Nearsoft Workshop
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
 
getshortsai-com-boom_aid=1 (1).pdf
getshortsai-com-boom_aid=1 (1).pdfgetshortsai-com-boom_aid=1 (1).pdf
getshortsai-com-boom_aid=1 (1).pdf
 
Question 6
Question 6 Question 6
Question 6
 
ASO for Games. How to start ranking in Top Charts.
ASO for Games. How to start ranking in Top Charts.ASO for Games. How to start ranking in Top Charts.
ASO for Games. How to start ranking in Top Charts.
 
White Nights Conference 2018
White Nights Conference 2018White Nights Conference 2018
White Nights Conference 2018
 
Evaluation 4 planning
Evaluation 4 planning Evaluation 4 planning
Evaluation 4 planning
 
How To Recruit with YouTube (video)
How To Recruit with YouTube (video) How To Recruit with YouTube (video)
How To Recruit with YouTube (video)
 
7 Test Ideas to Improve User Onboarding
7 Test Ideas to Improve User Onboarding7 Test Ideas to Improve User Onboarding
7 Test Ideas to Improve User Onboarding
 
How Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the DesignerHow Tools Have Shaped the Role of the Designer
How Tools Have Shaped the Role of the Designer
 
Evaluation question 4
Evaluation question 4Evaluation question 4
Evaluation question 4
 
How to create saleable video lesson using power point
How to create saleable video lesson using power pointHow to create saleable video lesson using power point
How to create saleable video lesson using power point
 
App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)
App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)
App Store Optimization (ASO) - 2020 Ultimate Guide for Apple App Store (iOS 13)
 
Designing the User Experience
Designing the User ExperienceDesigning the User Experience
Designing the User Experience
 
GH_Final1.1
GH_Final1.1GH_Final1.1
GH_Final1.1
 
I phone app slideshow
I phone app slideshowI phone app slideshow
I phone app slideshow
 
What have you learned about technologies from the process of constructing the...
What have you learned about technologies from the process of constructing the...What have you learned about technologies from the process of constructing the...
What have you learned about technologies from the process of constructing the...
 
Module 5 task 1 laura vilar
Module 5 task 1 laura vilarModule 5 task 1 laura vilar
Module 5 task 1 laura vilar
 
Evaluation 4
Evaluation 4Evaluation 4
Evaluation 4
 

Último

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming

Notas del editor

  1. ANTHONY For the last nine years we’ve worked together coaching teams on XP
  2. ANTHONY This quote is from Bryan Helmkamp, one of my favorite experts on code quality. From the Barcelona Ruby Conference in 2013 The context of the quote is that he is talking about his “Software Quality Playbook” and discusses pairing. He goes on to say that he recommends pairing and doesn’t do it so he his part of the problem. This is consistent with what Nick and have experienced Most developers don’t want to pair Most of those that have paired don’t learn how to do it effectively so they rarely do it This differs from our experience with Ping Pong Pair Programming They think it is only for bringing junior developers up to speed and that’s it “We Pair only when appropriate.”…and that’s not very often Our experience with Ping Pong Pair Programming is quite different Teams that practice Ping Pong Pair Programming typically find it very effective and stick with it
  3. ANTHONY - Here are some of the issues developers have with Pair Programming we have heard over the years
  4. NICK
  5. NICK The Keyboard Dominator One Person does all the typing in the pairing session the other has to wrestle control away eliminating opportunities for quality collaboration The pairing session is very one sided The Keyboard Dominator is usually accompanied by the Code Spectator --- the other half of the pair. This person is there to watch but not much else
  6. ANTHONY Now we have the opposite problem….
  7. ANTHONY The Disengaged Pair While one developer is working on the problem the other is checking their phone, reading tweets, planning their evening, etc. THIS IS REALLY SOLO WORK The other person gets a break from work for several hours This is less effective than working alone
  8. NICK Flow – when the developer(s) have the entire problem state in their head and they are making the most effective progress on the solution. Any interruption will set them back
  9. NICK ONE SOURCE IS WHAT WE CALL MISMATCHCED PAIRS One developer in the pair knows more than the other about the problem their solving, the domain, the technology than the other – struggles getting the other person contributing. Developers think they either need to coach or make efficient progress on the problem but not both Developers conclude it is easier to achieve flow and do their best work if they can just work alone
  10. ANTHONY There’s a lot wrapped up in this statement…
  11. ANTHONY This is just not true. When effectively pairing and using TDD the pair solves the big problems together (and adjusts as needed) while incrementally building the solution. Developers think pairing is just to bring junior developers up to speed and everything has to be scripted ahead of time. Don’t want any surprises in the pair
  12. ANTHONY Some developers struggle with communication while pairing because they are doing what Andy Hunt and Dave Thomas call Programming By Coincidence. Some devs just need to work understanding existing code quickly And communicating their technical ideas to others It comes as no surprise These teams typically struggle with coaching
  13. ANTHONHY Now let’s talk about Ping Pong Pair Programming
  14. ANTHONY Ping Pong Pair Programming is the combination of two of the 12 XP practices: Pair Programming Test-Driven Development
  15. NICK If anyone needs a TDD refresher, let’s discuss the basics quickly
  16. NICK And now when TDD gets laid over Pair Programming it looks something like this
  17. NICK
  18. NICK Ping Pong pair programming creates a natural rhythm with pre-established switching moments. If you are careful to follow TDD switching should happen every few minutes or so at most.
  19. ANTHONY These regular switching intervals helps prevent pairs from getting distracted and thinking about possible refactorings If you know you are going to be typing again in a minute or two you’ll be thinking about the next test Taking the smallest steps possible to make a test fail and then pass gets the pair engaged in the problem quickly - As the pair progresses they can start taking bigger steps
  20. NICK
  21. NICK Ping Pong Pair Programming Welcomes Mismatched Pairs --- Every Pairing session is opportunity to share knowledge, collaborate, coach and Mentor While making progress on the solution. But works equally well if pairs are of similar skill set or if they aren’t.
  22. ANTHONY The incremental & collaborative nature of Ping Pong Pair Programming helps developers practice Addressing problems and designs incrementally Working collaboratively on solutions Read and understand existing code quickly Communicate technical problems and solutions effectively to others YOU CAN’T PROGRAM BY COINCIDENCE AND PING PONG PAIR PROGRAM Less programming by coincidence will yield higher quality code
  23. ANTHONY Practicing Ping Pong Pair Programming helps create a culture of mentoring and coaching on development teams Every team we worked with that practicing Ping Pong Pair Programming had a strong mentoring culture
  24. ANTHONY Notice that not a single step takes longer than 2 minutes
  25. NICK
  26. Step 1 – Anthony – https://youtu.be/WZsLNrnS4yk
  27. Step 2 – Nick https://youtu.be/WujNniqzf9U
  28. Step 3 – Anthony – https://youtu.be/OoSvlJv24hE
  29. Step 4 – Nick – https://youtu.be/Kl6UbPtJNGo
  30. STEP 5 – Anthony – https://youtu.be/kUkD_Ak6PLc
  31. STEP 6 – Nick https://youtu.be/5VEuhMLS_Mk
  32. ANTHONY Notice the only differences from the last story are listed in yellow. This would be something Nick and I would discuss in the pair and it would inform our refactoring decisions towards our preferred software design.
  33. STEP 7 – Anthony – https://youtu.be/6coH9P0Yuxg
  34. STEP 8 – Nick https://youtu.be/CSzFSzsKaXM
  35. Step 9 – Anthony – https://youtu.be/1gfihiwx8dw
  36. Step 10 – Nick – https://youtu.be/4SfL6WWsCjo
  37. Step 11 – Nick - https://youtu.be/1eFAMNBStCo
  38. Step 12 – Anthony - https://youtu.be/P_u5OWjAcWo
  39. BOTH