SlideShare a Scribd company logo
1 of 14
PairProgramming
Apracticalguide
11/5/2016 – Giuseppe Sorrentino
Objective
Present pair programming as agile practice
◦ Definition and Advantages
◦ Roles and Duties
Provide clear and slick guidelines to improve pair programming within the pod
◦ Restarting, Planning and Action
◦ Tips and Tricks
PAIR PROGRAMMING – A PRACTICAL GUIDE 2
Definition
PAIR PROGRAMMING – A PRACTICAL GUIDE 3
“Pair programming isa dialog between two people trying to…understand how to program better.”4
Itintegrateswell intoanagileenvironment because itallows:1
• to produce better software by continuous inspection ofcode;
• to foster face-to-face communication.
Evidence 1
PAIR PROGRAMMING – A PRACTICAL GUIDE 4
Two programmers together vs. Twoprogrammers alone
Two programmers together work more thantwice asfastand thinkof more thantwice asmanysolution toa
problem astwo working together.
Five experienced programmers individually vs. five couple of experienced programmers
Groups completed the task40% more quicklyandeffectivelyby producing better algotithmsandcode inless
time.
Roles
PAIR PROGRAMMING – A PRACTICAL GUIDE 6
Duties
◦ Active role on the keyboard/mouse
◦ Focuses on the code at hand:
◦ Syntax
◦ Semantics
◦ Algorithm
◦ Verbalise his thoughts
◦ Concentrates to pass the next test
Driver
◦ No active role on the keyboard mouse
◦ Continually reviews the work
◦ Catches incidental mistakes
◦ Anything which needs further verification
◦ Overall code design
◦ Focuses on a strategic level
◦ Checks the consistency of the code being written with existent code
◦ Tracks if other changes are needed in different area of the code
base
◦ Suggest design and algorithm enhancements
Navigator
They switch often (from 10 to 20 minutes) only by swiping the keyboard
ActivityTime
7
Findthequestions
PAIR PROGRAMMING – A PRACTICAL GUIDE 8
Example
◦ In this case is better a multiple if structure or a switch
case?
◦ Which the most explicative name for this variable?
Driver
◦ How will this fit with the rest of the code?
◦ Will this implementation require changes elsewhere?
◦ Could we design this program better?
Navigator
Restarting, Planning and Action2
PAIR PROGRAMMING – A PRACTICAL GUIDE 9
Research recognized three main phases:
• Restarting: when a couple is stuck
• Planning: when a couple is deciding on their next actions
• Action: when a couple is actively performing a task
Guideline to drive these phases are in the notes.
https://www.youtube.com/watch?v=ONnYCT_LJio
Tips and Tricks1,2,3,4
PAIR PROGRAMMING – A PRACTICAL GUIDE 10
• Kill any distractor (browser, chats, notifications, etc.)
• Use an editor both are familiar with
• A good pairing time is four hours
• Do not pair to execute systematic and repetitive tasks
• Avoid to form always the same couples
• Check that your partner is active
• Healthy debate and avoid excess ego
• Use an appropriate workspace layout (switch keyboard)
ActivityTime
11
Plusanddelta
PAIR PROGRAMMING – A PRACTICAL GUIDE 12
• Code quality
• Speed
• Learning
• Familiarization
Pair Programming Balance
Conclusion
References
PAIR PROGRAMMING – A PRACTICAL GUIDE 13
1. L. A. Williams and R. R. Kessler, “All I really need to know about pair programming I learned in kindergarten,”
Communications of the ACM, vol. 43, no. 5, pp. 108–114, 2000.
2. M. Zarb, J. Hughes, and J. Richards, “Evaluating industry-inspired pair programming communication guidelines
with undergraduate students,” in Proceedings of the 45th ACM technical symposium on Computer science
education, 2014, pp. 361–366.
3. L. Williams, R. R. Kessler, W. Cunningham, and R. Jeffries, “Strengthening the case for pair programming,” IEEE
software, vol. 17, no. 4, pp. 19–25, 2000.
4. M. Kircher, P. Jain, A. Corsaro, and D. Levine, “Distributed extreme programming,” Extreme Programming and
Flexible Processes in Software Engineering, Italy, pp. 66–71, 2001.
Thankyou!

More Related Content

What's hot

Software Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob ProgrammingSoftware Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob ProgrammingHerez Moise Kattan
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsLemi Orhan Ergin
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programmingMichael Green
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventLemi Orhan Ergin
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Vinit Kumar Singh
 
XP Explained
XP ExplainedXP Explained
XP Explainedvineet
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeFadi Stephan
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
Microsoft + Agile (light)
Microsoft + Agile (light)Microsoft + Agile (light)
Microsoft + Agile (light)Andrea Tino
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesJon McNestrie
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingaaina_katyal
 
Advice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsAdvice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsPuppet
 
Why pay two developers to do the work of one?
Why pay two developers to do the work of one?Why pay two developers to do the work of one?
Why pay two developers to do the work of one?📈 Paige Watson
 
Difference between traditional and agile software development
Difference between traditional and agile software developmentDifference between traditional and agile software development
Difference between traditional and agile software developmentDeepaThirumurugan
 

What's hot (20)

Software Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob ProgrammingSoftware Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob Programming
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your Crafts
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Microsoft + Agile (light)
Microsoft + Agile (light)Microsoft + Agile (light)
Microsoft + Agile (light)
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Put to the Test
Put to the TestPut to the Test
Put to the Test
 
Advice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsAdvice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOps
 
Why pay two developers to do the work of one?
Why pay two developers to do the work of one?Why pay two developers to do the work of one?
Why pay two developers to do the work of one?
 
Difference between traditional and agile software development
Difference between traditional and agile software developmentDifference between traditional and agile software development
Difference between traditional and agile software development
 

Viewers also liked

Barriers ACRL Immersion Program Track
Barriers   ACRL Immersion Program TrackBarriers   ACRL Immersion Program Track
Barriers ACRL Immersion Program Trackguestd77b50
 
Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)Johannes Brodwall
 
"Where's the data?" The role of metadata in enabling the transformation to a ...
"Where's the data?" The role of metadata in enabling the transformation to a ..."Where's the data?" The role of metadata in enabling the transformation to a ...
"Where's the data?" The role of metadata in enabling the transformation to a ...Roland Bullivant
 
Agile Transformation and The Metrics Drama : Presented by Deepak Gururaja
Agile Transformation and The Metrics Drama : Presented by Deepak GururajaAgile Transformation and The Metrics Drama : Presented by Deepak Gururaja
Agile Transformation and The Metrics Drama : Presented by Deepak GururajaoGuild .
 
LS 708 Agile Tools for Everyone
LS 708 Agile Tools for EveryoneLS 708 Agile Tools for Everyone
LS 708 Agile Tools for EveryoneDon Bolen
 
Backlog Blunders
Backlog BlundersBacklog Blunders
Backlog BlundersJoe Combs
 
Agile Tool Selection
Agile Tool SelectionAgile Tool Selection
Agile Tool SelectionChad Holdorf
 
Keeping Product Backlog Healthy
Keeping Product Backlog HealthyKeeping Product Backlog Healthy
Keeping Product Backlog HealthyDhaval Panchal
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM toolsLarry Cai
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven developmenttoteb5
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven DevelopmentViraf Karai
 
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)Lemi Orhan Ergin
 
The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)
The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)
The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)Victoria Schiffer
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)Brian Rasmussen
 
Essentials of Agile User Story Mapping at Twitter
Essentials of Agile User Story Mapping at TwitterEssentials of Agile User Story Mapping at Twitter
Essentials of Agile User Story Mapping at TwitterAtlassian
 

Viewers also liked (20)

Barriers ACRL Immersion Program Track
Barriers   ACRL Immersion Program TrackBarriers   ACRL Immersion Program Track
Barriers ACRL Immersion Program Track
 
Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)Remote Pair Programming (Agile India)
Remote Pair Programming (Agile India)
 
"Where's the data?" The role of metadata in enabling the transformation to a ...
"Where's the data?" The role of metadata in enabling the transformation to a ..."Where's the data?" The role of metadata in enabling the transformation to a ...
"Where's the data?" The role of metadata in enabling the transformation to a ...
 
Agile/Lean Induction
Agile/Lean InductionAgile/Lean Induction
Agile/Lean Induction
 
Agile Transformation and The Metrics Drama : Presented by Deepak Gururaja
Agile Transformation and The Metrics Drama : Presented by Deepak GururajaAgile Transformation and The Metrics Drama : Presented by Deepak Gururaja
Agile Transformation and The Metrics Drama : Presented by Deepak Gururaja
 
Agile tools
Agile toolsAgile tools
Agile tools
 
LS 708 Agile Tools for Everyone
LS 708 Agile Tools for EveryoneLS 708 Agile Tools for Everyone
LS 708 Agile Tools for Everyone
 
Backlog Blunders
Backlog BlundersBacklog Blunders
Backlog Blunders
 
Agile Tool Selection
Agile Tool SelectionAgile Tool Selection
Agile Tool Selection
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Keeping Product Backlog Healthy
Keeping Product Backlog HealthyKeeping Product Backlog Healthy
Keeping Product Backlog Healthy
 
Agile ALM Tool Comparison
Agile ALM Tool ComparisonAgile ALM Tool Comparison
Agile ALM Tool Comparison
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven Development
 
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
 
The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)
The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)
The Story Mapping Game (1st Conf, Melbourne, Australia, 3rd March 2017)
 
Test-Driven Development (TDD)
Test-Driven Development (TDD)Test-Driven Development (TDD)
Test-Driven Development (TDD)
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Essentials of Agile User Story Mapping at Twitter
Essentials of Agile User Story Mapping at TwitterEssentials of Agile User Story Mapping at Twitter
Essentials of Agile User Story Mapping at Twitter
 

Similar to Pair Programming - a pratical guide

Pair Programming - Everything you need to know
Pair Programming - Everything you need to knowPair Programming - Everything you need to know
Pair Programming - Everything you need to knowKristina Suchan
 
Rapid usability testing
Rapid usability testingRapid usability testing
Rapid usability testinglisarex
 
unit-1 agile development.pptx
unit-1 agile development.pptxunit-1 agile development.pptx
unit-1 agile development.pptxDhruvSuthar24
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingAYUSH JAIN
 
It Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair ProgrammingIt Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair ProgrammingAndy Melichar
 
W7 Knowledge Check 5 1 American project managers have earned a r.docx
W7 Knowledge Check 5 1 American project managers have earned a r.docxW7 Knowledge Check 5 1 American project managers have earned a r.docx
W7 Knowledge Check 5 1 American project managers have earned a r.docxcelenarouzie
 
Agile - Pair-programming
Agile - Pair-programmingAgile - Pair-programming
Agile - Pair-programmingCarlosM80
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Open Source Software Development Practices that Works
Open Source Software Development Practices that WorksOpen Source Software Development Practices that Works
Open Source Software Development Practices that WorksChoong Ping Teo
 
Pair Programming: overview and concepts
Pair Programming: overview and conceptsPair Programming: overview and concepts
Pair Programming: overview and conceptsLior Kirshner-Shalom
 
Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018Sue Sentance
 
Test strategy
Test strategyTest strategy
Test strategyadarsh j
 
Analysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectivelyAnalysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectivelyMakoto SAKAI
 

Similar to Pair Programming - a pratical guide (20)

Pair Programming - Everything you need to know
Pair Programming - Everything you need to knowPair Programming - Everything you need to know
Pair Programming - Everything you need to know
 
Rapid usability testing
Rapid usability testingRapid usability testing
Rapid usability testing
 
unit-1 agile development.pptx
unit-1 agile development.pptxunit-1 agile development.pptx
unit-1 agile development.pptx
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
U3 l4 using simple commands
U3 l4 using simple commandsU3 l4 using simple commands
U3 l4 using simple commands
 
It Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair ProgrammingIt Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair Programming
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Lecture 25
Lecture 25Lecture 25
Lecture 25
 
W7 Knowledge Check 5 1 American project managers have earned a r.docx
W7 Knowledge Check 5 1 American project managers have earned a r.docxW7 Knowledge Check 5 1 American project managers have earned a r.docx
W7 Knowledge Check 5 1 American project managers have earned a r.docx
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Agile - Pair-programming
Agile - Pair-programmingAgile - Pair-programming
Agile - Pair-programming
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Open Source Software Development Practices that Works
Open Source Software Development Practices that WorksOpen Source Software Development Practices that Works
Open Source Software Development Practices that Works
 
Pair Programming: overview and concepts
Pair Programming: overview and conceptsPair Programming: overview and concepts
Pair Programming: overview and concepts
 
Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018Teacher toolkit Pycon UK Sept 2018
Teacher toolkit Pycon UK Sept 2018
 
Test strategy
Test strategyTest strategy
Test strategy
 
Analysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectivelyAnalysis of the interaction between practices for introducing XP effectively
Analysis of the interaction between practices for introducing XP effectively
 
Agile Methodologies & Key Principles 2
Agile Methodologies & Key Principles 2Agile Methodologies & Key Principles 2
Agile Methodologies & Key Principles 2
 
Lect7
Lect7Lect7
Lect7
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

Pair Programming - a pratical guide

  • 2. Objective Present pair programming as agile practice ◦ Definition and Advantages ◦ Roles and Duties Provide clear and slick guidelines to improve pair programming within the pod ◦ Restarting, Planning and Action ◦ Tips and Tricks PAIR PROGRAMMING – A PRACTICAL GUIDE 2
  • 3. Definition PAIR PROGRAMMING – A PRACTICAL GUIDE 3 “Pair programming isa dialog between two people trying to…understand how to program better.”4 Itintegrateswell intoanagileenvironment because itallows:1 • to produce better software by continuous inspection ofcode; • to foster face-to-face communication.
  • 4. Evidence 1 PAIR PROGRAMMING – A PRACTICAL GUIDE 4 Two programmers together vs. Twoprogrammers alone Two programmers together work more thantwice asfastand thinkof more thantwice asmanysolution toa problem astwo working together. Five experienced programmers individually vs. five couple of experienced programmers Groups completed the task40% more quicklyandeffectivelyby producing better algotithmsandcode inless time.
  • 6. PAIR PROGRAMMING – A PRACTICAL GUIDE 6 Duties ◦ Active role on the keyboard/mouse ◦ Focuses on the code at hand: ◦ Syntax ◦ Semantics ◦ Algorithm ◦ Verbalise his thoughts ◦ Concentrates to pass the next test Driver ◦ No active role on the keyboard mouse ◦ Continually reviews the work ◦ Catches incidental mistakes ◦ Anything which needs further verification ◦ Overall code design ◦ Focuses on a strategic level ◦ Checks the consistency of the code being written with existent code ◦ Tracks if other changes are needed in different area of the code base ◦ Suggest design and algorithm enhancements Navigator They switch often (from 10 to 20 minutes) only by swiping the keyboard
  • 8. PAIR PROGRAMMING – A PRACTICAL GUIDE 8 Example ◦ In this case is better a multiple if structure or a switch case? ◦ Which the most explicative name for this variable? Driver ◦ How will this fit with the rest of the code? ◦ Will this implementation require changes elsewhere? ◦ Could we design this program better? Navigator
  • 9. Restarting, Planning and Action2 PAIR PROGRAMMING – A PRACTICAL GUIDE 9 Research recognized three main phases: • Restarting: when a couple is stuck • Planning: when a couple is deciding on their next actions • Action: when a couple is actively performing a task Guideline to drive these phases are in the notes. https://www.youtube.com/watch?v=ONnYCT_LJio
  • 10. Tips and Tricks1,2,3,4 PAIR PROGRAMMING – A PRACTICAL GUIDE 10 • Kill any distractor (browser, chats, notifications, etc.) • Use an editor both are familiar with • A good pairing time is four hours • Do not pair to execute systematic and repetitive tasks • Avoid to form always the same couples • Check that your partner is active • Healthy debate and avoid excess ego • Use an appropriate workspace layout (switch keyboard)
  • 12. PAIR PROGRAMMING – A PRACTICAL GUIDE 12 • Code quality • Speed • Learning • Familiarization Pair Programming Balance Conclusion
  • 13. References PAIR PROGRAMMING – A PRACTICAL GUIDE 13 1. L. A. Williams and R. R. Kessler, “All I really need to know about pair programming I learned in kindergarten,” Communications of the ACM, vol. 43, no. 5, pp. 108–114, 2000. 2. M. Zarb, J. Hughes, and J. Richards, “Evaluating industry-inspired pair programming communication guidelines with undergraduate students,” in Proceedings of the 45th ACM technical symposium on Computer science education, 2014, pp. 361–366. 3. L. Williams, R. R. Kessler, W. Cunningham, and R. Jeffries, “Strengthening the case for pair programming,” IEEE software, vol. 17, no. 4, pp. 19–25, 2000. 4. M. Kircher, P. Jain, A. Corsaro, and D. Levine, “Distributed extreme programming,” Extreme Programming and Flexible Processes in Software Engineering, Italy, pp. 66–71, 2001.