SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
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!
The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming
Whenever I am driving my pair
just looks at their phone.
The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming
I can’t ever get into flow
when pairing.
The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming
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.
The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming
Talking about everything I’m
doing will slow me down.
The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 
[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...
[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...
[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...CyndiMcgaugh
 
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
 

Ähnlich wie 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
 
[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...
[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...
[Stupidly Simple] 3-Click Software Makes Us OVER $500DAY POSTING 15 SEC VIDEO...
 
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
 

Kürzlich hochgeladen

Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 

Kürzlich hochgeladen (20)

Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 

The Ultimate Developer Collaboration Technique: Ping Pong Pair Programming

Hinweis der Redaktion

  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