SlideShare a Scribd company logo
ANTI-PATTERNS
OF PAIR PROGRAMMING
randy.eppinger@leandog.com
@RandyEppinger
Definition
Paraphrase from Extreme Programming Explained:

Pair programming is a dialog between two
people trying to simultaneously program,
analyze, and design software and understand
how to do so better. It is a conversation at many
levels assisted by and focused on one
computer.

It is NOT:

Two people taking turns programming
Benefits reminder
One study showed that pairs are only 15% slower than
working solo while reducing bugs by 15 - 50%

Live code review

Names, Coding Conventions, Patterns, Architecture

Shared learning of technology, tools, and domain

Avoiding silos of knowledge

Holding each other accountable to craftsmanship

Focus - less checking out and succumbing to distraction
Clumsy Communication
Little interaction

No feedback, questions

Long periods of silence

Breaking apart to solve problem alone

Taking breaks out of sync

Barking or whining
https://www.flickr.com/photos/robbyrussell/2674833047
Debating not Collaborating
Analysis paralysis - Basically arguing (usually
politely) for an extended period of time in which
there is a clear difference of opinion

Contributing factors:

Lack of respect for pair (or pair’s ability)

Strong opinions/Over-confidence in own ability

Enjoy solving hard problems alone

Misconception that decision is permanent
Distracted by technology
Phone - text, emails, Facebook, Twitter

Laptop - Keeping your own laptop open while pairing

Android/Apple watch - hard to resist looking at it when
it taps you 

Instant messaging
http://www.thedustertoday.com/2014/04/technology-today/
Lack of Empathy
Lack of patience with pair’s technical knowledge

Failure to allow person to have a bad day
Unwillingness to give pair
time to catch up
Lack of teamwork
Thinking of a section of code or even an entire application
as “yours”

Tendency not to use words “we” or “our” but instead say
“I” or “my”

Finding opportunities to work on problems alone while:

Pair takes break

Pair is at lunch

Working alone over the weekend

Staying late/coming in early
Self focused
My idea wins no matter what

Won’t give up space/monitor/keyboard

Monitor is not in good position for pair

Drink, phone, etc invading pair’s space

Working close to center of station while pair is
smashed against one side of desk
Always want to work on
YOUR computer, not pair’s

Use different tools, setup,
etc. than rest of team
Overly timid
Overly compliant - go along to get along

Keeping silent to avoid confrontation or even healthy
debate

Feeling inferior to other’s technical ability

Going into “Listen” or “Wait and See” mode while
more vocal pair leads
http://post.career.vi/2012/02/tips-for-timid-employees-2/
Everyone can add value
“It may be that you are not yourself
luminous, but that you are a
conductor of light. Some people
without possessing genius have a
remarkable power of stimulating it.” 

― Sir Arthur Conan Doyle
Good Pairing
Active conversation while coding

Both are driving, switch control unceremoniously

Few lengthy debates, quickly pick one idea and
code it to learn

Breaks are synchronized and relatively short 

Feeling of steady productivity, day goes fast

End of day you feel weary from focused, hard work
http://wangyan.info/blog/page/2/
Discussion
We all do some of these things some of the time.

What is a safe, respectful way to communicate to
someone that he or she is engaging in a pairing
anti-pattern?
Strategies to improve
If you notice you are engaging in an anti-pattern, apologize
and correct it.

If someone apologizes, accept it graciously and remember
that we all have bad days

Ask questions:

Is it OK to work on my computer?

How are things for you today?

Do you have lunch plans? I’m working until 4:30, when
are you going home?
Strategies to improve
Be observant:

If your pair is checking their phone, ask if everything is OK or if
he or she needs to take a few minutes.

If your pair seems reluctant to take control, deliberately give up
the keyboard/mouse

Try to slow down if your pair seems confused. Step away from
computer and talk for two minutes, don’t leave anyone behind

If your pair takes a break, take one at the same time.

Pair rotation - Basically flight. Get away from the situation.

Be sure to reflect on how YOU could have improved, don’t
focus on the other person’s behavior

More Related Content

What's hot

The art of accountability in work delegation
The art of accountability in work delegationThe art of accountability in work delegation
The art of accountability in work delegationChao Onlamai
 
Revision Power Point
Revision Power PointRevision Power Point
Revision Power Pointscbbhc5
 
Writing the abstract
Writing the abstractWriting the abstract
Writing the abstractunmgrc
 
Taking notes in a classroom
Taking notes in a classroomTaking notes in a classroom
Taking notes in a classroomgreg green
 
Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2kkdiener
 
Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2guest3981d9
 
How to handle worst case scenarios in presentations
How to handle worst case scenarios in presentationsHow to handle worst case scenarios in presentations
How to handle worst case scenarios in presentationsTrainers Advice
 
Communication skills lecture08
Communication skills lecture08Communication skills lecture08
Communication skills lecture08Amr Al-Awamry
 
Tips for moderating one-on-one user interviews
Tips for moderating one-on-one user interviewsTips for moderating one-on-one user interviews
Tips for moderating one-on-one user interviewsAlly
 
8th grade ppt dos and donts
8th grade ppt dos and donts8th grade ppt dos and donts
8th grade ppt dos and dontsbstroop
 
8th grade ppt dos and donts
8th grade ppt dos and donts8th grade ppt dos and donts
8th grade ppt dos and dontsbstroop
 
SC Extemporaneous Speaking Guidesheet
SC Extemporaneous Speaking GuidesheetSC Extemporaneous Speaking Guidesheet
SC Extemporaneous Speaking GuidesheetEd Pittman
 
Power trip workshop z's edits
Power trip workshop   z's editsPower trip workshop   z's edits
Power trip workshop z's editsStephen Perkins
 
SHPE Time Management
SHPE Time ManagementSHPE Time Management
SHPE Time Managementbarrycordero
 
Gsp hpsds l2_8.3_planning your presentation
Gsp hpsds l2_8.3_planning your presentation Gsp hpsds l2_8.3_planning your presentation
Gsp hpsds l2_8.3_planning your presentation globalstudypass
 

What's hot (20)

The art of accountability in work delegation
The art of accountability in work delegationThe art of accountability in work delegation
The art of accountability in work delegation
 
Revision Power Point
Revision Power PointRevision Power Point
Revision Power Point
 
Writing the abstract
Writing the abstractWriting the abstract
Writing the abstract
 
Taking notes in a classroom
Taking notes in a classroomTaking notes in a classroom
Taking notes in a classroom
 
Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2
 
Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2Stritch Intro2 Elluminate2
Stritch Intro2 Elluminate2
 
English report
English reportEnglish report
English report
 
How to handle worst case scenarios in presentations
How to handle worst case scenarios in presentationsHow to handle worst case scenarios in presentations
How to handle worst case scenarios in presentations
 
Communication skills lecture08
Communication skills lecture08Communication skills lecture08
Communication skills lecture08
 
Tips for moderating one-on-one user interviews
Tips for moderating one-on-one user interviewsTips for moderating one-on-one user interviews
Tips for moderating one-on-one user interviews
 
8th grade ppt dos and donts
8th grade ppt dos and donts8th grade ppt dos and donts
8th grade ppt dos and donts
 
8th grade ppt dos and donts
8th grade ppt dos and donts8th grade ppt dos and donts
8th grade ppt dos and donts
 
SC Extemporaneous Speaking Guidesheet
SC Extemporaneous Speaking GuidesheetSC Extemporaneous Speaking Guidesheet
SC Extemporaneous Speaking Guidesheet
 
Power Point
Power PointPower Point
Power Point
 
E portfolio
E portfolio E portfolio
E portfolio
 
Power trip workshop z's edits
Power trip workshop   z's editsPower trip workshop   z's edits
Power trip workshop z's edits
 
SHPE Time Management
SHPE Time ManagementSHPE Time Management
SHPE Time Management
 
Chapter 8
Chapter 8Chapter 8
Chapter 8
 
Gsp hpsds l2_8.3_planning your presentation
Gsp hpsds l2_8.3_planning your presentation Gsp hpsds l2_8.3_planning your presentation
Gsp hpsds l2_8.3_planning your presentation
 
September 8 (73X)
September 8 (73X)September 8 (73X)
September 8 (73X)
 

Similar to Pair programming anti patterns

Grokking TechTalk #31: Asynchronous Communications
Grokking TechTalk #31: Asynchronous CommunicationsGrokking TechTalk #31: Asynchronous Communications
Grokking TechTalk #31: Asynchronous CommunicationsGrokking VN
 
Working Remotely in Construction
Working Remotely in ConstructionWorking Remotely in Construction
Working Remotely in ConstructionSean Hussey
 
Communication Strategies For Teams
Communication Strategies For TeamsCommunication Strategies For Teams
Communication Strategies For TeamsMark Childs
 
Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)Davide Benvegnù
 
How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication
How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication
How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication QuekelsBaro
 
The ROPES of presentations - Technical Communication
The ROPES of presentations - Technical CommunicationThe ROPES of presentations - Technical Communication
The ROPES of presentations - Technical CommunicationApril_Walters
 
Communication @ Funnelll - Doing Remote-First the right way
Communication @ Funnelll - Doing Remote-First the right way Communication @ Funnelll - Doing Remote-First the right way
Communication @ Funnelll - Doing Remote-First the right way Funnelll
 
Foot course expectations_2016_apr06
Foot course expectations_2016_apr06Foot course expectations_2016_apr06
Foot course expectations_2016_apr06txwescetl
 
Crucial confrontations
Crucial confrontationsCrucial confrontations
Crucial confrontationsYves Hanoulle
 
Clerk Smarter, Not Harder - Productivity Tips for Parish and Town Clerks
Clerk Smarter, Not Harder - Productivity Tips for Parish and Town ClerksClerk Smarter, Not Harder - Productivity Tips for Parish and Town Clerks
Clerk Smarter, Not Harder - Productivity Tips for Parish and Town ClerksScribe
 
Best Practices for Remote Teaching
Best Practices for Remote TeachingBest Practices for Remote Teaching
Best Practices for Remote TeachingMaria H. Andersen
 
How to Run Remote Meetings That Don’t Suck
How to Run Remote Meetings That Don’t Suck How to Run Remote Meetings That Don’t Suck
How to Run Remote Meetings That Don’t Suck QuekelsBaro
 
Technology Wellness in the Nonprofit Workplace
Technology Wellness in the Nonprofit WorkplaceTechnology Wellness in the Nonprofit Workplace
Technology Wellness in the Nonprofit WorkplaceBeth Kanter
 
20161028 pairing - roni greenwood
20161028 pairing - roni greenwood20161028 pairing - roni greenwood
20161028 pairing - roni greenwoodStaff Agile66
 
Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...
Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...
Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...Fiona Tranquada
 
Time management.2013.
Time management.2013.Time management.2013.
Time management.2013.jfuller5678
 
Product camp virtual collaboration slides
Product camp virtual collaboration slidesProduct camp virtual collaboration slides
Product camp virtual collaboration slidesBeth Matteotti
 
Usability testing for accessible UX
Usability testing for accessible UXUsability testing for accessible UX
Usability testing for accessible UXWhitney Quesenbery
 

Similar to Pair programming anti patterns (20)

Grokking TechTalk #31: Asynchronous Communications
Grokking TechTalk #31: Asynchronous CommunicationsGrokking TechTalk #31: Asynchronous Communications
Grokking TechTalk #31: Asynchronous Communications
 
Working Remotely in Construction
Working Remotely in ConstructionWorking Remotely in Construction
Working Remotely in Construction
 
Communication Strategies For Teams
Communication Strategies For TeamsCommunication Strategies For Teams
Communication Strategies For Teams
 
Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)
 
How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication
How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication
How to Combat Zoom Fatigue: Synchronous vs. Asynchronous Communication
 
The ROPES of presentations - Technical Communication
The ROPES of presentations - Technical CommunicationThe ROPES of presentations - Technical Communication
The ROPES of presentations - Technical Communication
 
Communication @ Funnelll - Doing Remote-First the right way
Communication @ Funnelll - Doing Remote-First the right way Communication @ Funnelll - Doing Remote-First the right way
Communication @ Funnelll - Doing Remote-First the right way
 
Foot course expectations_2016_apr06
Foot course expectations_2016_apr06Foot course expectations_2016_apr06
Foot course expectations_2016_apr06
 
Crucial confrontations
Crucial confrontationsCrucial confrontations
Crucial confrontations
 
Clerk Smarter, Not Harder - Productivity Tips for Parish and Town Clerks
Clerk Smarter, Not Harder - Productivity Tips for Parish and Town ClerksClerk Smarter, Not Harder - Productivity Tips for Parish and Town Clerks
Clerk Smarter, Not Harder - Productivity Tips for Parish and Town Clerks
 
Best Practices for Remote Teaching
Best Practices for Remote TeachingBest Practices for Remote Teaching
Best Practices for Remote Teaching
 
How to Run Remote Meetings That Don’t Suck
How to Run Remote Meetings That Don’t Suck How to Run Remote Meetings That Don’t Suck
How to Run Remote Meetings That Don’t Suck
 
Technology Wellness in the Nonprofit Workplace
Technology Wellness in the Nonprofit WorkplaceTechnology Wellness in the Nonprofit Workplace
Technology Wellness in the Nonprofit Workplace
 
20161028 pairing - roni greenwood
20161028 pairing - roni greenwood20161028 pairing - roni greenwood
20161028 pairing - roni greenwood
 
Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...
Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...
Expecting the Unexpected: Preparing for Successful User Research Sessions (Do...
 
Time management.2013.
Time management.2013.Time management.2013.
Time management.2013.
 
Product camp virtual collaboration slides
Product camp virtual collaboration slidesProduct camp virtual collaboration slides
Product camp virtual collaboration slides
 
Pairing and mobbing
Pairing and mobbingPairing and mobbing
Pairing and mobbing
 
Usability testing for accessible UX
Usability testing for accessible UXUsability testing for accessible UX
Usability testing for accessible UX
 
Time management
Time managementTime management
Time management
 

Recently uploaded

GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisNeo4j
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareinfo611746
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessWSO2
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 

Recently uploaded (20)

GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 

Pair programming anti patterns

  • 2. Definition Paraphrase from Extreme Programming Explained: Pair programming is a dialog between two people trying to simultaneously program, analyze, and design software and understand how to do so better. It is a conversation at many levels assisted by and focused on one computer. It is NOT: Two people taking turns programming
  • 3. Benefits reminder One study showed that pairs are only 15% slower than working solo while reducing bugs by 15 - 50% Live code review Names, Coding Conventions, Patterns, Architecture Shared learning of technology, tools, and domain Avoiding silos of knowledge Holding each other accountable to craftsmanship Focus - less checking out and succumbing to distraction
  • 4. Clumsy Communication Little interaction No feedback, questions Long periods of silence Breaking apart to solve problem alone Taking breaks out of sync Barking or whining https://www.flickr.com/photos/robbyrussell/2674833047
  • 5. Debating not Collaborating Analysis paralysis - Basically arguing (usually politely) for an extended period of time in which there is a clear difference of opinion Contributing factors: Lack of respect for pair (or pair’s ability) Strong opinions/Over-confidence in own ability Enjoy solving hard problems alone Misconception that decision is permanent
  • 6. Distracted by technology Phone - text, emails, Facebook, Twitter Laptop - Keeping your own laptop open while pairing Android/Apple watch - hard to resist looking at it when it taps you Instant messaging http://www.thedustertoday.com/2014/04/technology-today/
  • 7. Lack of Empathy Lack of patience with pair’s technical knowledge Failure to allow person to have a bad day Unwillingness to give pair time to catch up
  • 8. Lack of teamwork Thinking of a section of code or even an entire application as “yours” Tendency not to use words “we” or “our” but instead say “I” or “my” Finding opportunities to work on problems alone while: Pair takes break Pair is at lunch Working alone over the weekend Staying late/coming in early
  • 9. Self focused My idea wins no matter what Won’t give up space/monitor/keyboard Monitor is not in good position for pair Drink, phone, etc invading pair’s space Working close to center of station while pair is smashed against one side of desk Always want to work on YOUR computer, not pair’s Use different tools, setup, etc. than rest of team
  • 10. Overly timid Overly compliant - go along to get along Keeping silent to avoid confrontation or even healthy debate Feeling inferior to other’s technical ability Going into “Listen” or “Wait and See” mode while more vocal pair leads http://post.career.vi/2012/02/tips-for-timid-employees-2/
  • 11. Everyone can add value “It may be that you are not yourself luminous, but that you are a conductor of light. Some people without possessing genius have a remarkable power of stimulating it.” ― Sir Arthur Conan Doyle
  • 12. Good Pairing Active conversation while coding Both are driving, switch control unceremoniously Few lengthy debates, quickly pick one idea and code it to learn Breaks are synchronized and relatively short Feeling of steady productivity, day goes fast End of day you feel weary from focused, hard work http://wangyan.info/blog/page/2/
  • 13. Discussion We all do some of these things some of the time. What is a safe, respectful way to communicate to someone that he or she is engaging in a pairing anti-pattern?
  • 14. Strategies to improve If you notice you are engaging in an anti-pattern, apologize and correct it. If someone apologizes, accept it graciously and remember that we all have bad days Ask questions: Is it OK to work on my computer? How are things for you today? Do you have lunch plans? I’m working until 4:30, when are you going home?
  • 15. Strategies to improve Be observant: If your pair is checking their phone, ask if everything is OK or if he or she needs to take a few minutes. If your pair seems reluctant to take control, deliberately give up the keyboard/mouse Try to slow down if your pair seems confused. Step away from computer and talk for two minutes, don’t leave anyone behind If your pair takes a break, take one at the same time. Pair rotation - Basically flight. Get away from the situation. Be sure to reflect on how YOU could have improved, don’t focus on the other person’s behavior