SlideShare a Scribd company logo
PAIR PROGRAMMING
BY SANDEEP P R
ABOUT ME
 STARTED MY CAREER IN 2003 IN .NET ESPECIALLY ASP.NET
TECHNOLOGIES
 WORKING WITH INDECOMM FOR NEARLY 4 YEARS
 ASP.NET, JAVASCRIPT (OOPS), EXTJS, ASP.NET MVC, ASP.NET
WEBAPI ETC.
 FAN OF DESIGN PATTERNS
 BDD (BEHAVIOR DRIVEN DEVELOPMENT) AND TDD (TEST
DRIVEN DEVELOPMENT)
 AGILE (SRUM AND EXTREME PROGRAMMING [XP])
 OTHER
PAIR PROGRAMMING
AGENDA
 WHAT IS PAIR PROGRAMMING?
 PARTICIPANTS IN PAIR PROGRAMMING
 PAIRING VARIATIONS
 MYTHS
 GUIDELINES
 ADVANTAGES
 PROBLEMS
 TIT BITS
 QUESTIONS
WHO IS A PROGRAMMER?
“LONELY MACHO
WARRIORS, BATTLING
AGAINST A SEA OF BITS
AND BYTES.”Professor Matthias Felleisen
WHEN THINGS GO RIGHT?
WE ARE CHILDISHLY
DELIGHTED WITH WHAT
WE HAVE CREATED
WHEN THINGS GO WRONG?
“BANG-YOUR-HEAD-AGAINST-
THE-WALL”
“A TECHNIQUE THAT CAN RADICALLY
INCREASE THE NUMBER OF TIME THINGS
GO RIGHT AND DECREASE THE NUMBER
OF TIMES THINGS GO WRONG”
THIS IS NOT PAIR PROGRAMMING
PAIR PROGRAMMING
WIKI DEFINITION
PAIR PROGRAMMING IS AN AGILE
SOFTWARE DEVELOPMENT TECHNIQUE
IN WHICH TWO PROGRAMMERS WORK
TOGETHER AT ONE WORKSTATION.
ONE, THE DRIVER, WRITES CODE WHILE
THE OTHER, THE OBSERVER, REVIEWS
EACH LINE OF CODE AS IT IS TYPED IN.
THE TWO PROGRAMMERS SWITCH
ROLES FREQUENTLY.
WHAT PAIR PROGRAMMING MEANS?
 PAIR DESIGN
 PAIR DEBUGGING
 PAIR TESTING
 PAIR CODING
DRIVER
 FOCUSES ON THE CODE
AT HAND
 SYNTAX
 SEMANTICS
 ALGORITHM
OBSERVER
 POINTER OR NAVIGATOR
 KEEPS AN EYE ON TACTICAL AND STRATEGIC ERRORS
 TACTICAL ERROR: TYPOS, SYNTACTICAL ERRORS, CALLING THE
WRONG METHOD ETC
 STRATEGIC ERROR: IMPLEMENTATION IS MEETING THE GOAL OR
NOT
 SANITY TESTING THE CODE
 THINKING THROUGH PROBLEMS
 WHERE TO GO NEXT
 KEEP THE DRIVER ON COURSE
PAIRING VARIATIONS
 EXPERT-EXPERT
 EXPERT-NOVICE
 NOVICE-NOVICE
EXPERT-EXPERT PAIRING
 TO SOLVE COMPLEX PROBLEMS
 CAN GIVE GREAT RESULTS
 LESS TIME SPEND ON EXPLAINING
THINGS
 NO NEW WAYS TO SOLVE THE
PROBLEMS
 UNLIKELY TO QUESTION ESTABLISHED
PRACTICES
 EXPERTS HAVE BIG EGO, “DO IT MY WAY
EXPERT-NOVICE
 FOR MENTORING A NOVICE
 GETTING EASY JOB DONE
 CAN HAVE NEW SOLUTION TO A
PROBLEM
 NEW PEOPLE CAN HELP OUT
ALMOST IMMEDIATELY
 EXPERT HAS TO TAKE OFF “I
KNOW EVERYTHING” MASK
 CREATE CONDUCIVE
ENVIRONMENT
NOVICE-NOVICE
 MOSTLY HAPPENS IN
COLLEGES
 MENTOR HAS BE ASSIGNED
 EASY WAY TO LEARN THINGS
 PAIRS ARE MORE LIKELY TO ASK
QUESTION THAN INDIVIDUAL
MYTHS
 IT WILL DOUBLE THE WORKLOAD WITH TWO DOING THE WORK ONE
CAN DO
 I’LL NEVER GET TO WORK ALONE. I COULDN’T STAND THAT!
 IT WILL WORK WELL ONLY WITH THE RIGHT PARTNER
 PAIR PROGRAMMING IS GOOD FOR TRAINING. BUT, ONCE YOU
KNOW WHAT YOU’RE DOING, IT IS A WASTE OF TIME
 I’LL NEVER GET CREDIT FOR DOING ANYTHING. I’LL HAVE TO
SHARE ALL THE RECOGNITION WITH MY PARTNER
 THE ONLY TIME I EVER GET ANY REAL WORK DONE IS WHEN I’M
ALONE. NOW, I’LL NEVER GET ANYTHING
DONE! PAIR PROGRAMMING WOULD DRIVE ME CRAZY
GUIDELINES
 MIN OF 17INCH MONITOR AND
COMFORTABLE SEATING
 TALK A LOT
 NO POINTING ON THE SCREEN WITH
FINGER (NAVIGATOR)
 PAIR ROTATION
 GIVE THE DRIVER NANO SECONDS TO FIND
AND CORRECT HIS/HER OWN MISTAKES
 INTRA AND INTERPAIR COMMUNICATION
 DEVELOPMENT ENVIRONMENT
GUIDELINES CONTD…
 MAKE USE OF TDD
 PRACTICE ACTIVE LISTENING
 NOISE CONSIDERATION
 IF YOU PARTNER IS NOT LISTENING, JUST WALK AWAY
 IF YOU DON’T UNDERSTAND WHAT YOUR PARTNER IS DOING,
THEN STOP AND ASK. STILL YOU DON’T UNDERSTAND , ASK
AGAIN, ASK AGAIN ASK AGAIN….
 TAKE ENOUGH SHOWER; EAT LOTS OF BREATH MINTS
ADVANTAGES
 INSTANT CODE REVIEW
 KNOWLEDGE SHARE
 REDUCES THE TRAINING COST
 EXCELLENT TOOL TO BREAK COMMUNICATION BARRIERS
BETWEEN TEAMMATES
With Pair Programming Without Pair Programming
Assimilation Time (work days) 18 40
Mentoring Time (%) 26 36
Training Effort (work days) 15 37
PROBLEMS, PROBLEMS AND LOT MORE PROBLEMS
 DEPENDENCY
 SCHEDULING
 THE EVER POPULAR EXPERT
 COLOCATION
 NOISE AND FACILITY CONSIDERATION
 CONCENTRATION
 DISAGREEMENT
 OVERCONFIDENCE
 RUSHING
 SKILL IMBALANCE
 SIMPLY NOT FOR EVERYONE
TIT BITS
MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN
NAGAPPAN
MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN NAGAPPAN
CONT…
ALISTAIR COCKBURN & LAURIE WILLIAMS
THE COSTS AND BENEFITS OF PAIR PROGRAMMING
ALISTAIR COCKBURN & LAURIE WILLIAMS
CONCLUSION
• SUPPORT FROM TEAM/MENTOR/LEADER/COACH AND OF
COURSE FROM THE MANGER
• 20YEARS OF DATA FOR BENEFITS OF REVIEW
• PROGRAMMERS AVOID REVIEW LIKE PLAGUE
• PROGRAMMERS ARE STRONG BELIEVERS THAT THEY CAN
ACHIEVE MORE BY GOING SOLO
• COLLECT AND DISSEMINATE INFORMATION/METRICS TO THE
TEAM
• MANAGEMENT BY WALKING AROUND
RESEARCH LINKS
• HTTP://RESEARCH.MICROSOFT.COM/PUBS/75108/ESEM-BEGEL-
2008.PDF
• HTTP://WWW.CS.POMONA.EDU/CLASSES/CS121/SUPP/WILLIAMS_PR
PGM.PDF
• HTTP://WWW.SOBERIT.HUT.FI/~JVANHANE/PUBS/LICTHESIS_VANHAN
EN.PDF
• HTTP://CITESEERX.IST.PSU.EDU/VIEWDOC/DOWNLOAD?DOI=10.1.1.2
58.7427&REP=REP1&TYPE=PDF
• HTTP://AGILE.VTT.FI/DOCS/PUBLICATIONS/2005/2005_MULTIPLE_CAS
E_STUDY_PAIR_PROGRAMMING.PDF
WAYS TO REACH ME
• SANDEEP.R@ACCELRYS.COM
• SANDEEP.R@INDECOMM.NET
• HTTPS://WWW.LINKEDIN.COM/IN/SANDEEPPR
• HTTPS://TWITTER.COM/SNDPPR
Questions???

More Related Content

Similar to Pair programming

Prototyping approach and platforms
Prototyping approach and platforms Prototyping approach and platforms
Prototyping approach and platforms
Filippo Scorza
 
Strategies for Complex Skill Development
Strategies for Complex Skill DevelopmentStrategies for Complex Skill Development
Strategies for Complex Skill Development
Julie Dirksen
 
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Blend Interactive
 
Design Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition ConferenceDesign Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition Conference
Jeff Wenzinger
 
Copy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptx
Copy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptxCopy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptx
Copy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptx
HarshVardhan588
 
Design Sprints at Scale
Design Sprints at ScaleDesign Sprints at Scale
Design Sprints at Scale
Fresh Tilled Soil
 
Ready to be a Design Thinking Supa' Star?!
Ready to be a Design Thinking Supa' Star?!Ready to be a Design Thinking Supa' Star?!
Ready to be a Design Thinking Supa' Star?!
Dr. Melissa Sassi
 
Instructional Design Today: What We Really Need to Know as Practitioners, Res...
Instructional Design Today: What We Really Need to Know as Practitioners, Res...Instructional Design Today: What We Really Need to Know as Practitioners, Res...
Instructional Design Today: What We Really Need to Know as Practitioners, Res...
Karl Kapp
 
About Analysis and Design
About Analysis and DesignAbout Analysis and Design
About Analysis and Design
Alison Pope
 
Pausefest: Solve your own damn problem
Pausefest: Solve your own damn problemPausefest: Solve your own damn problem
Pausefest: Solve your own damn problem
Mike Ojo
 
Session 2 into to qualitative research intro
Session 2   into to qualitative research introSession 2   into to qualitative research intro
Session 2 into to qualitative research introAngela Ferrara
 
Emerging Skills for L&D to Enable the Future of Work
Emerging Skills for L&D to Enable the Future of WorkEmerging Skills for L&D to Enable the Future of Work
Emerging Skills for L&D to Enable the Future of Work
arun pradhan
 
Blind faith and best practices mike behnke @localpcguy
Blind faith and best practices   mike behnke   @localpcguyBlind faith and best practices   mike behnke   @localpcguy
Blind faith and best practices mike behnke @localpcguy
Mike Behnke
 
Why Methods Trump Methodology
Why Methods Trump MethodologyWhy Methods Trump Methodology
Why Methods Trump Methodology
Jess McMullin
 
How to focus - design your new app in 60 minutes!
How to focus - design your new app in 60 minutes!How to focus - design your new app in 60 minutes!
How to focus - design your new app in 60 minutes!
Zach Pousman
 
Vt Overview Iab Cpres 92011
Vt Overview Iab Cpres 92011Vt Overview Iab Cpres 92011
Vt Overview Iab Cpres 92011
mark_allen
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
Jonathan Noble
 
YOUNG 2016 Professione startupper: come fare del digitale la tua impresa
YOUNG 2016 Professione startupper: come fare del digitale la tua impresa YOUNG 2016 Professione startupper: come fare del digitale la tua impresa
YOUNG 2016 Professione startupper: come fare del digitale la tua impresa
Andrea Vaccarella
 
Design Thinking Your Life
Design Thinking Your LifeDesign Thinking Your Life
Design Thinking Your Life
Jochen Guertler
 

Similar to Pair programming (20)

Prototyping approach and platforms
Prototyping approach and platforms Prototyping approach and platforms
Prototyping approach and platforms
 
Strategies for Complex Skill Development
Strategies for Complex Skill DevelopmentStrategies for Complex Skill Development
Strategies for Complex Skill Development
 
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
 
Design Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition ConferenceDesign Thinking - NYU Ambition Conference
Design Thinking - NYU Ambition Conference
 
B D D Intro
B D D  IntroB D D  Intro
B D D Intro
 
Copy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptx
Copy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptxCopy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptx
Copy of CRISPR_TEMPLATE, ahkhfakjfkahrabaf.pptx
 
Design Sprints at Scale
Design Sprints at ScaleDesign Sprints at Scale
Design Sprints at Scale
 
Ready to be a Design Thinking Supa' Star?!
Ready to be a Design Thinking Supa' Star?!Ready to be a Design Thinking Supa' Star?!
Ready to be a Design Thinking Supa' Star?!
 
Instructional Design Today: What We Really Need to Know as Practitioners, Res...
Instructional Design Today: What We Really Need to Know as Practitioners, Res...Instructional Design Today: What We Really Need to Know as Practitioners, Res...
Instructional Design Today: What We Really Need to Know as Practitioners, Res...
 
About Analysis and Design
About Analysis and DesignAbout Analysis and Design
About Analysis and Design
 
Pausefest: Solve your own damn problem
Pausefest: Solve your own damn problemPausefest: Solve your own damn problem
Pausefest: Solve your own damn problem
 
Session 2 into to qualitative research intro
Session 2   into to qualitative research introSession 2   into to qualitative research intro
Session 2 into to qualitative research intro
 
Emerging Skills for L&D to Enable the Future of Work
Emerging Skills for L&D to Enable the Future of WorkEmerging Skills for L&D to Enable the Future of Work
Emerging Skills for L&D to Enable the Future of Work
 
Blind faith and best practices mike behnke @localpcguy
Blind faith and best practices   mike behnke   @localpcguyBlind faith and best practices   mike behnke   @localpcguy
Blind faith and best practices mike behnke @localpcguy
 
Why Methods Trump Methodology
Why Methods Trump MethodologyWhy Methods Trump Methodology
Why Methods Trump Methodology
 
How to focus - design your new app in 60 minutes!
How to focus - design your new app in 60 minutes!How to focus - design your new app in 60 minutes!
How to focus - design your new app in 60 minutes!
 
Vt Overview Iab Cpres 92011
Vt Overview Iab Cpres 92011Vt Overview Iab Cpres 92011
Vt Overview Iab Cpres 92011
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
YOUNG 2016 Professione startupper: come fare del digitale la tua impresa
YOUNG 2016 Professione startupper: come fare del digitale la tua impresa YOUNG 2016 Professione startupper: come fare del digitale la tua impresa
YOUNG 2016 Professione startupper: come fare del digitale la tua impresa
 
Design Thinking Your Life
Design Thinking Your LifeDesign Thinking Your Life
Design Thinking Your Life
 

Recently uploaded

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

Pair programming

  • 2. ABOUT ME  STARTED MY CAREER IN 2003 IN .NET ESPECIALLY ASP.NET TECHNOLOGIES  WORKING WITH INDECOMM FOR NEARLY 4 YEARS  ASP.NET, JAVASCRIPT (OOPS), EXTJS, ASP.NET MVC, ASP.NET WEBAPI ETC.  FAN OF DESIGN PATTERNS  BDD (BEHAVIOR DRIVEN DEVELOPMENT) AND TDD (TEST DRIVEN DEVELOPMENT)  AGILE (SRUM AND EXTREME PROGRAMMING [XP])  OTHER
  • 4. AGENDA  WHAT IS PAIR PROGRAMMING?  PARTICIPANTS IN PAIR PROGRAMMING  PAIRING VARIATIONS  MYTHS  GUIDELINES  ADVANTAGES  PROBLEMS  TIT BITS  QUESTIONS
  • 5. WHO IS A PROGRAMMER? “LONELY MACHO WARRIORS, BATTLING AGAINST A SEA OF BITS AND BYTES.”Professor Matthias Felleisen
  • 6. WHEN THINGS GO RIGHT? WE ARE CHILDISHLY DELIGHTED WITH WHAT WE HAVE CREATED
  • 7. WHEN THINGS GO WRONG? “BANG-YOUR-HEAD-AGAINST- THE-WALL”
  • 8. “A TECHNIQUE THAT CAN RADICALLY INCREASE THE NUMBER OF TIME THINGS GO RIGHT AND DECREASE THE NUMBER OF TIMES THINGS GO WRONG”
  • 9. THIS IS NOT PAIR PROGRAMMING
  • 10. PAIR PROGRAMMING WIKI DEFINITION PAIR PROGRAMMING IS AN AGILE SOFTWARE DEVELOPMENT TECHNIQUE IN WHICH TWO PROGRAMMERS WORK TOGETHER AT ONE WORKSTATION. ONE, THE DRIVER, WRITES CODE WHILE THE OTHER, THE OBSERVER, REVIEWS EACH LINE OF CODE AS IT IS TYPED IN. THE TWO PROGRAMMERS SWITCH ROLES FREQUENTLY.
  • 11. WHAT PAIR PROGRAMMING MEANS?  PAIR DESIGN  PAIR DEBUGGING  PAIR TESTING  PAIR CODING
  • 12. DRIVER  FOCUSES ON THE CODE AT HAND  SYNTAX  SEMANTICS  ALGORITHM
  • 13. OBSERVER  POINTER OR NAVIGATOR  KEEPS AN EYE ON TACTICAL AND STRATEGIC ERRORS  TACTICAL ERROR: TYPOS, SYNTACTICAL ERRORS, CALLING THE WRONG METHOD ETC  STRATEGIC ERROR: IMPLEMENTATION IS MEETING THE GOAL OR NOT  SANITY TESTING THE CODE  THINKING THROUGH PROBLEMS  WHERE TO GO NEXT  KEEP THE DRIVER ON COURSE
  • 14. PAIRING VARIATIONS  EXPERT-EXPERT  EXPERT-NOVICE  NOVICE-NOVICE
  • 15. EXPERT-EXPERT PAIRING  TO SOLVE COMPLEX PROBLEMS  CAN GIVE GREAT RESULTS  LESS TIME SPEND ON EXPLAINING THINGS  NO NEW WAYS TO SOLVE THE PROBLEMS  UNLIKELY TO QUESTION ESTABLISHED PRACTICES  EXPERTS HAVE BIG EGO, “DO IT MY WAY
  • 16. EXPERT-NOVICE  FOR MENTORING A NOVICE  GETTING EASY JOB DONE  CAN HAVE NEW SOLUTION TO A PROBLEM  NEW PEOPLE CAN HELP OUT ALMOST IMMEDIATELY  EXPERT HAS TO TAKE OFF “I KNOW EVERYTHING” MASK  CREATE CONDUCIVE ENVIRONMENT
  • 17. NOVICE-NOVICE  MOSTLY HAPPENS IN COLLEGES  MENTOR HAS BE ASSIGNED  EASY WAY TO LEARN THINGS  PAIRS ARE MORE LIKELY TO ASK QUESTION THAN INDIVIDUAL
  • 18. MYTHS  IT WILL DOUBLE THE WORKLOAD WITH TWO DOING THE WORK ONE CAN DO  I’LL NEVER GET TO WORK ALONE. I COULDN’T STAND THAT!  IT WILL WORK WELL ONLY WITH THE RIGHT PARTNER  PAIR PROGRAMMING IS GOOD FOR TRAINING. BUT, ONCE YOU KNOW WHAT YOU’RE DOING, IT IS A WASTE OF TIME  I’LL NEVER GET CREDIT FOR DOING ANYTHING. I’LL HAVE TO SHARE ALL THE RECOGNITION WITH MY PARTNER  THE ONLY TIME I EVER GET ANY REAL WORK DONE IS WHEN I’M ALONE. NOW, I’LL NEVER GET ANYTHING DONE! PAIR PROGRAMMING WOULD DRIVE ME CRAZY
  • 19. GUIDELINES  MIN OF 17INCH MONITOR AND COMFORTABLE SEATING  TALK A LOT  NO POINTING ON THE SCREEN WITH FINGER (NAVIGATOR)  PAIR ROTATION  GIVE THE DRIVER NANO SECONDS TO FIND AND CORRECT HIS/HER OWN MISTAKES  INTRA AND INTERPAIR COMMUNICATION  DEVELOPMENT ENVIRONMENT
  • 20. GUIDELINES CONTD…  MAKE USE OF TDD  PRACTICE ACTIVE LISTENING  NOISE CONSIDERATION  IF YOU PARTNER IS NOT LISTENING, JUST WALK AWAY  IF YOU DON’T UNDERSTAND WHAT YOUR PARTNER IS DOING, THEN STOP AND ASK. STILL YOU DON’T UNDERSTAND , ASK AGAIN, ASK AGAIN ASK AGAIN….  TAKE ENOUGH SHOWER; EAT LOTS OF BREATH MINTS
  • 21. ADVANTAGES  INSTANT CODE REVIEW  KNOWLEDGE SHARE  REDUCES THE TRAINING COST  EXCELLENT TOOL TO BREAK COMMUNICATION BARRIERS BETWEEN TEAMMATES With Pair Programming Without Pair Programming Assimilation Time (work days) 18 40 Mentoring Time (%) 26 36 Training Effort (work days) 15 37
  • 22. PROBLEMS, PROBLEMS AND LOT MORE PROBLEMS  DEPENDENCY  SCHEDULING  THE EVER POPULAR EXPERT  COLOCATION  NOISE AND FACILITY CONSIDERATION  CONCENTRATION  DISAGREEMENT  OVERCONFIDENCE  RUSHING  SKILL IMBALANCE  SIMPLY NOT FOR EVERYONE
  • 23. TIT BITS MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN NAGAPPAN
  • 24. MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN NAGAPPAN CONT…
  • 25. ALISTAIR COCKBURN & LAURIE WILLIAMS THE COSTS AND BENEFITS OF PAIR PROGRAMMING
  • 26. ALISTAIR COCKBURN & LAURIE WILLIAMS
  • 27. CONCLUSION • SUPPORT FROM TEAM/MENTOR/LEADER/COACH AND OF COURSE FROM THE MANGER • 20YEARS OF DATA FOR BENEFITS OF REVIEW • PROGRAMMERS AVOID REVIEW LIKE PLAGUE • PROGRAMMERS ARE STRONG BELIEVERS THAT THEY CAN ACHIEVE MORE BY GOING SOLO • COLLECT AND DISSEMINATE INFORMATION/METRICS TO THE TEAM • MANAGEMENT BY WALKING AROUND
  • 28. RESEARCH LINKS • HTTP://RESEARCH.MICROSOFT.COM/PUBS/75108/ESEM-BEGEL- 2008.PDF • HTTP://WWW.CS.POMONA.EDU/CLASSES/CS121/SUPP/WILLIAMS_PR PGM.PDF • HTTP://WWW.SOBERIT.HUT.FI/~JVANHANE/PUBS/LICTHESIS_VANHAN EN.PDF • HTTP://CITESEERX.IST.PSU.EDU/VIEWDOC/DOWNLOAD?DOI=10.1.1.2 58.7427&REP=REP1&TYPE=PDF • HTTP://AGILE.VTT.FI/DOCS/PUBLICATIONS/2005/2005_MULTIPLE_CAS E_STUDY_PAIR_PROGRAMMING.PDF
  • 29. WAYS TO REACH ME • SANDEEP.R@ACCELRYS.COM • SANDEEP.R@INDECOMM.NET • HTTPS://WWW.LINKEDIN.COM/IN/SANDEEPPR • HTTPS://TWITTER.COM/SNDPPR

Editor's Notes

  1. Get intro from everyoneName, team, technology.
  2. Alistair Cockburn (Humans and Technology, Dell RD)Laurie Williams (University of Utah Computer Science)