SlideShare a Scribd company logo
Pair Programming
Fitter, happier
More productive
Comfortable
Not drinking too much
What is Pair Programming?
● Agile software method where two developers work with one keyboard/mouse
● One developer “drives” (tactical)
● The other developer “observes/navigates” (strategic)
● Periodically switch “seats”
● Augments or replaces other code peer reviews (including a PR)
● Longer than a Q and A session
● Aims to solve a given problem
Who Does Pair Programming?
● Pivotal Labs
● Thoughtbot
● Thoughtworks
● Hashrocket
● 8th Light
● Github
● Braintree
● Facebook
● Square
● Twitter
● Groupon
● Redbox
Source Quora
Advantages and Disadvantages
● Catches bugs earlier
● Spreading feature expertise
● Technical knowledge transference
● “Two heads are better than one”
● Team building
● Easier handoffs
● The Cost of Change (next slide)
● Capacity hit of 15%-100%,
depending on efficiency
● Personality conflicts (feeling watched,
having to talk through a problem)
● Scheduling can be difficult
● Fatigue of always being “on” (e.g.
can’t go check Reddit)
*IEEE study
The Cost of Change (Part 1)
When is the best time to catch a bug?
● Requirements
● Development
● Continuous Integration (Jenkins)
● QA
● Production by client services / customers
Let's find out on the next slide!
The Cost of Change (Part 2)
The Cost of Change (Part 3)
Structure
Driver
Controls
keyboard/mouse
Works tactically to write
code
Handles syntax
Leads effort
Navigator
Observes driver
Thinks through
implementation
Finds edge cases
Thinks about how to
test
Looks up docs
Contribute
Talk out loud
Be respectful
Do’s and Dont’s
DO
● Switch off frequently
● Leave the ego at the door
● Make it easy to hear you
● Ensure text is legible (screen
resolution, bandwidth)
● Listen to feedback
● Explore ideas
DON’T
● Get defensive
● Take hands off keyboard /
Disengagement
● “Watch the master”
● Be silent
● Get distracted (Slack snooze, close
emails, etc)
Tools
● Tmux (I put this at the top for Max) - terminal - works on remote server (might want to
pair with audio+video)
● Screenhero - audio+video - can control remote keyboard/mouse
● Slack video - audio+video
● Google Hangouts audio+video
● Skype audio+video
● Telephone
● Meat space
(Not this Meat Space)
Questions?

More Related Content

What's hot (20)

PPT
Process Synchronization And Deadlocks
tech2click
 
DOC
Distributed Mutual exclusion algorithms
MNM Jain Engineering College
 
PPTX
Unreal python
TonyCms
 
PDF
게임 프로그래밍 기초 공부법
Chris Ohk
 
PDF
OIT552 Cloud Computing - Question Bank
pkaviya
 
PPTX
Mycin 016
Nidhi Singh
 
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
PPTX
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
Ryan Park
 
PDF
Multiplayer Game Sync Techniques through CAP theorem
Seungmo Koo
 
PPTX
A presentation on software crisis
chandan sharma
 
PPTX
Introduction to Procedural Contents Generation
Davide Aversa
 
PDF
Iocp 기본 구조 이해
Nam Hyeonuk
 
PPTX
SELECT THE PROPER KINDS OF WINDOWS
Dhanya LK
 
PPTX
Language for specifying lexical Analyzer
Archana Gopinath
 
PPTX
Software Architecture vs design
Arslan Anwar
 
PPT
extreme Programming
Bilal Shah
 
PDF
Open mp directives
Prabhakaran V M
 
PPTX
Raster Scan display
Lokesh Singrol
 
PDF
NDC12_Lockless게임서버설계와구현
noerror
 
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
Heungsub Lee
 
Process Synchronization And Deadlocks
tech2click
 
Distributed Mutual exclusion algorithms
MNM Jain Engineering College
 
Unreal python
TonyCms
 
게임 프로그래밍 기초 공부법
Chris Ohk
 
OIT552 Cloud Computing - Question Bank
pkaviya
 
Mycin 016
Nidhi Singh
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
Ryan Park
 
Multiplayer Game Sync Techniques through CAP theorem
Seungmo Koo
 
A presentation on software crisis
chandan sharma
 
Introduction to Procedural Contents Generation
Davide Aversa
 
Iocp 기본 구조 이해
Nam Hyeonuk
 
SELECT THE PROPER KINDS OF WINDOWS
Dhanya LK
 
Language for specifying lexical Analyzer
Archana Gopinath
 
Software Architecture vs design
Arslan Anwar
 
extreme Programming
Bilal Shah
 
Open mp directives
Prabhakaran V M
 
Raster Scan display
Lokesh Singrol
 
NDC12_Lockless게임서버설계와구현
noerror
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
Heungsub Lee
 

Similar to Pair programming (20)

PDF
Debugging 2013- Lars pedersen
Mediehuset Ingeniøren Live
 
PPTX
Pair Programming Styles
Attila Bertók
 
ODP
Xtreme Programming
Prasad Kancharla
 
PPT
Pair Programming: overview and concepts
Lior Kirshner-Shalom
 
PDF
Redmine for azoft
Julia Lyakhova
 
ODP
Path dependent-development (PyCon India)
ncoghlan_dev
 
PPTX
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
DevOpsDays Tel Aviv
 
PPTX
Developer effiencency
YousufMaalikJaleel
 
PPTX
Go fundamentals
Ron Barabash
 
PDF
Picking the right architecture and sticking to it
Petter Holmström
 
ODP
Path Dependent Development (PyCon AU)
ncoghlan_dev
 
PDF
Stop Sucking at Building Stuff!
Puppet
 
PDF
GDC Talk.pdf
Nishant298626
 
PPTX
Not my problem - Delegating responsibility to infrastructure
Yshay Yaacobi
 
PDF
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
slashn
 
PDF
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
Puppet
 
PDF
Agile Development: Key to smart software development
Jerlyn Manohar
 
PPTX
When to Code / Config / Config + Code in Salesforce - Nikunj Doshi
Sakthivel Madesh
 
PPTX
A sip of elixir
Uttam Kini
 
PPTX
Effective tool usage - web development tools and tips
Nigel Alford
 
Debugging 2013- Lars pedersen
Mediehuset Ingeniøren Live
 
Pair Programming Styles
Attila Bertók
 
Xtreme Programming
Prasad Kancharla
 
Pair Programming: overview and concepts
Lior Kirshner-Shalom
 
Redmine for azoft
Julia Lyakhova
 
Path dependent-development (PyCon India)
ncoghlan_dev
 
A culture of Automation - Joe Smith - DevOpsDays Tel Aviv 2017
DevOpsDays Tel Aviv
 
Developer effiencency
YousufMaalikJaleel
 
Go fundamentals
Ron Barabash
 
Picking the right architecture and sticking to it
Petter Holmström
 
Path Dependent Development (PyCon AU)
ncoghlan_dev
 
Stop Sucking at Building Stuff!
Puppet
 
GDC Talk.pdf
Nishant298626
 
Not my problem - Delegating responsibility to infrastructure
Yshay Yaacobi
 
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
slashn
 
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
Puppet
 
Agile Development: Key to smart software development
Jerlyn Manohar
 
When to Code / Config / Config + Code in Salesforce - Nikunj Doshi
Sakthivel Madesh
 
A sip of elixir
Uttam Kini
 
Effective tool usage - web development tools and tips
Nigel Alford
 
Ad

More from thehoagie (11)

PDF
Docker presentation
thehoagie
 
PDF
Database 101
thehoagie
 
PPTX
Testing
thehoagie
 
PPTX
Hubot
thehoagie
 
PDF
Git Pro Tips
thehoagie
 
PDF
Null object pattern
thehoagie
 
PDF
Big tables and you - Keeping DDL operatations fast
thehoagie
 
PDF
Angular.js - An introduction for the unitiated
thehoagie
 
PDF
Regular expression presentation for the HUB
thehoagie
 
PDF
Converting your JS library to a jQuery plugin
thehoagie
 
PDF
Active records before_type_cast
thehoagie
 
Docker presentation
thehoagie
 
Database 101
thehoagie
 
Testing
thehoagie
 
Hubot
thehoagie
 
Git Pro Tips
thehoagie
 
Null object pattern
thehoagie
 
Big tables and you - Keeping DDL operatations fast
thehoagie
 
Angular.js - An introduction for the unitiated
thehoagie
 
Regular expression presentation for the HUB
thehoagie
 
Converting your JS library to a jQuery plugin
thehoagie
 
Active records before_type_cast
thehoagie
 
Ad

Recently uploaded (20)

PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PPTX
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
The Future of Artificial Intelligence (AI)
Mukul
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 

Pair programming

  • 1. Pair Programming Fitter, happier More productive Comfortable Not drinking too much
  • 2. What is Pair Programming? ● Agile software method where two developers work with one keyboard/mouse ● One developer “drives” (tactical) ● The other developer “observes/navigates” (strategic) ● Periodically switch “seats” ● Augments or replaces other code peer reviews (including a PR) ● Longer than a Q and A session ● Aims to solve a given problem
  • 3. Who Does Pair Programming? ● Pivotal Labs ● Thoughtbot ● Thoughtworks ● Hashrocket ● 8th Light ● Github ● Braintree ● Facebook ● Square ● Twitter ● Groupon ● Redbox Source Quora
  • 4. Advantages and Disadvantages ● Catches bugs earlier ● Spreading feature expertise ● Technical knowledge transference ● “Two heads are better than one” ● Team building ● Easier handoffs ● The Cost of Change (next slide) ● Capacity hit of 15%-100%, depending on efficiency ● Personality conflicts (feeling watched, having to talk through a problem) ● Scheduling can be difficult ● Fatigue of always being “on” (e.g. can’t go check Reddit) *IEEE study
  • 5. The Cost of Change (Part 1) When is the best time to catch a bug? ● Requirements ● Development ● Continuous Integration (Jenkins) ● QA ● Production by client services / customers Let's find out on the next slide!
  • 6. The Cost of Change (Part 2)
  • 7. The Cost of Change (Part 3)
  • 8. Structure Driver Controls keyboard/mouse Works tactically to write code Handles syntax Leads effort Navigator Observes driver Thinks through implementation Finds edge cases Thinks about how to test Looks up docs Contribute Talk out loud Be respectful
  • 9. Do’s and Dont’s DO ● Switch off frequently ● Leave the ego at the door ● Make it easy to hear you ● Ensure text is legible (screen resolution, bandwidth) ● Listen to feedback ● Explore ideas DON’T ● Get defensive ● Take hands off keyboard / Disengagement ● “Watch the master” ● Be silent ● Get distracted (Slack snooze, close emails, etc)
  • 10. Tools ● Tmux (I put this at the top for Max) - terminal - works on remote server (might want to pair with audio+video) ● Screenhero - audio+video - can control remote keyboard/mouse ● Slack video - audio+video ● Google Hangouts audio+video ● Skype audio+video ● Telephone ● Meat space
  • 11. (Not this Meat Space)