SlideShare uma empresa Scribd logo
1 de 27
Pair Programming and
       XP Values

           ShriKant Vashishtha
   http://sampreshan.svashishtha.com
Values = Roots of what we like or
           don’t like
Practices and Values
• Practices are evidences of values
• Practices implemented in most effective way
  possible, shows that I value “values”.
Pair Programming – What is it?
  • Better work together more quickly than either
    could alone.
  • The driver types – focus on tactics - writing clean
    code
  • The navigator - focuses on strategy - how the code
    fits into the overall design, refactoring, tests etc.
  • They switch every few hours to share perspectives
    and knowledge.
  • Knowledge sharing within the team is good and
    the team knows the total code base better.
How to do it?
• Pair on everything you need to maintain
• Switch partners when you need a fresh
  perspective
• Pair with different people throughout the day
• Sit comfortably
• Switch driver and navigator roles frequently
• Collaborate and converse!
How to do it?
• Have design discussions and agree upon as a pair what’s intended
  to be done.
• Agree on one tiny goal at a time
• Rely on your partner, support your partner.
• Talk a lot
• Switch roles often
• Write unit test first
• Pay attention – don’t check your email, facebook etc
• The person who knows less about the system or language should
  do most of the driving, to ensure that the novice stays engaged.
  You learn more through your fingers than through your eyes.
• Ping-pong pairing
Pairing Anti-patterns
• No breaks
• No pair-switching
• No pairing core hours
• Not communicating enough
• Not listening to other solutions
• Grabbing the keyboard away
• Silent partner
• Listening to partner, but ignoring feedback, as if they are an
  annoying popup in your IDE.
•   Egos and personality conflicts
Force - Improve Velocity,
          Team!
Shouldn’t we rather focus on
    effectiveness more?
Effectiveness demands Simplicity
   = eliminate wasted complexity
Value - Simplicity
Force – Different Schools of
         Thoughts
Value - Respect
Troubles in pairing?
• I’m faster on my own
• Can’t pair with that guy, he’s getting on my nerves
• Pair programming is too tiring
• We’ve split up the work and we’ll get it done faster if we use
  two keyboards
• There’s too much background noise
• I’m just slowing her down
Pairing Styles
Style 1: The Commander and The
          Backseat Driver
Style 1: The Commander and The
          Backseat Driver
Style 2: The Rally
Style 3: The Tour
Style 4: Disconnected Pair or The
        Sleeping Navigator
Other Values in XP
Communication – Electronic vs
         face-to-face
Facts around Communication
Value - Feedback
Will wait till retrospective ;).
          Really???
Feedback and Continuous
       Integration
  Do painful things more
       frequently
Questions

Mais conteúdo relacionado

Mais procurados

Auto configuration in cloud 0.1
Auto configuration in cloud 0.1Auto configuration in cloud 0.1
Auto configuration in cloud 0.1
Alex Tregubov
 
Pair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an IdeaPair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an Idea
Scott Gilbert
 

Mais procurados (8)

Productive teams
Productive teamsProductive teams
Productive teams
 
Auto configuration in cloud 0.1
Auto configuration in cloud 0.1Auto configuration in cloud 0.1
Auto configuration in cloud 0.1
 
Agile Issue Types and Decomposition
Agile Issue Types and DecompositionAgile Issue Types and Decomposition
Agile Issue Types and Decomposition
 
How to break up epics (for Product Managers)
How to break up epics (for Product Managers)How to break up epics (for Product Managers)
How to break up epics (for Product Managers)
 
Two heads are better: the benefits of pair writing
Two heads are better: the benefits of pair writingTwo heads are better: the benefits of pair writing
Two heads are better: the benefits of pair writing
 
Introduction to Course Mapping
Introduction to Course Mapping Introduction to Course Mapping
Introduction to Course Mapping
 
Script
ScriptScript
Script
 
Pair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an IdeaPair PM-ing, An Exploration of an Idea
Pair PM-ing, An Exploration of an Idea
 

Semelhante a Pair Programming and XP Values

Pair Programming
Pair ProgrammingPair Programming
Pair Programming
JazzSodhi
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
Johannes Brodwall
 

Semelhante a Pair Programming and XP Values (20)

Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Pair Programming Styles
Pair Programming StylesPair Programming Styles
Pair Programming Styles
 
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
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
 
High performing-distributed-teams
High performing-distributed-teamsHigh performing-distributed-teams
High performing-distributed-teams
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
 
Power of the Swarm - Agile Serbia Conference 2017
Power of the Swarm - Agile Serbia Conference 2017Power of the Swarm - Agile Serbia Conference 2017
Power of the Swarm - Agile Serbia Conference 2017
 
Prevent Crash & Burn. Launch Successful Projects
Prevent Crash & Burn. Launch Successful ProjectsPrevent Crash & Burn. Launch Successful Projects
Prevent Crash & Burn. Launch Successful Projects
 
The Art of Leading Effective Meetings
The Art of Leading Effective MeetingsThe Art of Leading Effective Meetings
The Art of Leading Effective Meetings
 
Q&A with Scrum Masters
Q&A with Scrum MastersQ&A with Scrum Masters
Q&A with Scrum Masters
 
Agile prague 2017 - Real Teams - Petri Heiramo
Agile prague 2017 - Real Teams - Petri HeiramoAgile prague 2017 - Real Teams - Petri Heiramo
Agile prague 2017 - Real Teams - Petri Heiramo
 
Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012
 
Xp not windows xp
Xp not windows xpXp not windows xp
Xp not windows xp
 
[XP Day Vietnam 2015] XP is not windows XP
[XP Day Vietnam 2015] XP is not windows XP[XP Day Vietnam 2015] XP is not windows XP
[XP Day Vietnam 2015] XP is not windows XP
 
XP, Not Windows XP
XP, Not Windows XPXP, Not Windows XP
XP, Not Windows XP
 
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015][XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
[XPday.vn] XP? not Windows XP {presentation} (at) [XP Day Vietnam 2015]
 
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
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
Distributed Agile - Agile Tour Sydney 2013
Distributed Agile - Agile Tour Sydney 2013Distributed Agile - Agile Tour Sydney 2013
Distributed Agile - Agile Tour Sydney 2013
 

Mais de ShriKant Vashishtha

How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User Stories
ShriKant Vashishtha
 
Agile Maintenance by ShriKant Vashishtha
Agile Maintenance by ShriKant VashishthaAgile Maintenance by ShriKant Vashishtha
Agile Maintenance by ShriKant Vashishtha
ShriKant Vashishtha
 
Working With Augmented Distributed Agile Team In Legacy Application
Working With Augmented Distributed Agile Team In Legacy ApplicationWorking With Augmented Distributed Agile Team In Legacy Application
Working With Augmented Distributed Agile Team In Legacy Application
ShriKant Vashishtha
 
Agile FAQs by ShriKant Vashishtha
Agile FAQs by ShriKant VashishthaAgile FAQs by ShriKant Vashishtha
Agile FAQs by ShriKant Vashishtha
ShriKant Vashishtha
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
ShriKant Vashishtha
 
TheOtherPages Pagination Framework by Shrikant Vashishtha
TheOtherPages Pagination Framework by Shrikant VashishthaTheOtherPages Pagination Framework by Shrikant Vashishtha
TheOtherPages Pagination Framework by Shrikant Vashishtha
ShriKant Vashishtha
 
Caching fundamentals by Shrikant Vashishtha
Caching fundamentals by Shrikant VashishthaCaching fundamentals by Shrikant Vashishtha
Caching fundamentals by Shrikant Vashishtha
ShriKant Vashishtha
 
Pair Programming Explained By Shrikant Vashishtha
Pair Programming Explained  By Shrikant VashishthaPair Programming Explained  By Shrikant Vashishtha
Pair Programming Explained By Shrikant Vashishtha
ShriKant Vashishtha
 
Management and Self Learning Lessons from Indian Mythology
Management and Self Learning Lessons from Indian MythologyManagement and Self Learning Lessons from Indian Mythology
Management and Self Learning Lessons from Indian Mythology
ShriKant Vashishtha
 

Mais de ShriKant Vashishtha (14)

Evolution of Agile world with Lean Startup Concepts
 Evolution of Agile world with Lean Startup Concepts Evolution of Agile world with Lean Startup Concepts
Evolution of Agile world with Lean Startup Concepts
 
Distributed Agile Patterns
Distributed Agile PatternsDistributed Agile Patterns
Distributed Agile Patterns
 
What is Agile Testing
What is Agile TestingWhat is Agile Testing
What is Agile Testing
 
How to build a fun team
How to build a fun teamHow to build a fun team
How to build a fun team
 
How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User Stories
 
Agile Maintenance by ShriKant Vashishtha
Agile Maintenance by ShriKant VashishthaAgile Maintenance by ShriKant Vashishtha
Agile Maintenance by ShriKant Vashishtha
 
Working With Augmented Distributed Agile Team In Legacy Application
Working With Augmented Distributed Agile Team In Legacy ApplicationWorking With Augmented Distributed Agile Team In Legacy Application
Working With Augmented Distributed Agile Team In Legacy Application
 
Agile FAQs by ShriKant Vashishtha
Agile FAQs by ShriKant VashishthaAgile FAQs by ShriKant Vashishtha
Agile FAQs by ShriKant Vashishtha
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
TheOtherPages Pagination Framework by Shrikant Vashishtha
TheOtherPages Pagination Framework by Shrikant VashishthaTheOtherPages Pagination Framework by Shrikant Vashishtha
TheOtherPages Pagination Framework by Shrikant Vashishtha
 
Caching fundamentals by Shrikant Vashishtha
Caching fundamentals by Shrikant VashishthaCaching fundamentals by Shrikant Vashishtha
Caching fundamentals by Shrikant Vashishtha
 
Pair Programming Explained By Shrikant Vashishtha
Pair Programming Explained  By Shrikant VashishthaPair Programming Explained  By Shrikant Vashishtha
Pair Programming Explained By Shrikant Vashishtha
 
Management and Self Learning Lessons from Indian Mythology
Management and Self Learning Lessons from Indian MythologyManagement and Self Learning Lessons from Indian Mythology
Management and Self Learning Lessons from Indian Mythology
 
Memory Management In C++
Memory Management In C++Memory Management In C++
Memory Management In C++
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

Pair Programming and XP Values

  • 1. Pair Programming and XP Values ShriKant Vashishtha http://sampreshan.svashishtha.com
  • 2. Values = Roots of what we like or don’t like
  • 3. Practices and Values • Practices are evidences of values • Practices implemented in most effective way possible, shows that I value “values”.
  • 4. Pair Programming – What is it? • Better work together more quickly than either could alone. • The driver types – focus on tactics - writing clean code • The navigator - focuses on strategy - how the code fits into the overall design, refactoring, tests etc. • They switch every few hours to share perspectives and knowledge. • Knowledge sharing within the team is good and the team knows the total code base better.
  • 5. How to do it? • Pair on everything you need to maintain • Switch partners when you need a fresh perspective • Pair with different people throughout the day • Sit comfortably • Switch driver and navigator roles frequently • Collaborate and converse!
  • 6. How to do it? • Have design discussions and agree upon as a pair what’s intended to be done. • Agree on one tiny goal at a time • Rely on your partner, support your partner. • Talk a lot • Switch roles often • Write unit test first • Pay attention – don’t check your email, facebook etc • The person who knows less about the system or language should do most of the driving, to ensure that the novice stays engaged. You learn more through your fingers than through your eyes. • Ping-pong pairing
  • 7. Pairing Anti-patterns • No breaks • No pair-switching • No pairing core hours • Not communicating enough • Not listening to other solutions • Grabbing the keyboard away • Silent partner • Listening to partner, but ignoring feedback, as if they are an annoying popup in your IDE. • Egos and personality conflicts
  • 8. Force - Improve Velocity, Team!
  • 9. Shouldn’t we rather focus on effectiveness more?
  • 10. Effectiveness demands Simplicity = eliminate wasted complexity
  • 12. Force – Different Schools of Thoughts
  • 14. Troubles in pairing? • I’m faster on my own • Can’t pair with that guy, he’s getting on my nerves • Pair programming is too tiring • We’ve split up the work and we’ll get it done faster if we use two keyboards • There’s too much background noise • I’m just slowing her down
  • 16. Style 1: The Commander and The Backseat Driver
  • 17. Style 1: The Commander and The Backseat Driver
  • 18. Style 2: The Rally
  • 19. Style 3: The Tour
  • 20. Style 4: Disconnected Pair or The Sleeping Navigator
  • 22. Communication – Electronic vs face-to-face
  • 25. Will wait till retrospective ;). Really???
  • 26. Feedback and Continuous Integration Do painful things more frequently