Practical Remote Pair Programming

Book description

A practical guide for developers, development teams, and managers to successfully implement remote pair programming techniques and styles that better fit their organization's environment

Key Features

  • Implement remote pair programming best practices in your organization to increase productivity in software development teams
  • Overcome the challenges in communication while working with distributed teams across the globe
  • Explore remote pair programming tools and learn smart ways to use them efficiently

Book Description

Remote pair programming takes pair programming practices to the next level by allowing you and your team members to work effectively in distributed teams. This helps ensure that you continuously improve code quality, share equal ownership of the code, facilitate knowledge sharing, and reduce bugs in your code. If you want to adopt remote pair programming within your development team, this book is for you.

Practical Remote Pair Programming takes you through various techniques and best practices for working with the wide variety of tools available for remote pair programming. You'll understand the significance of pair programming and how it can help improve communication within your team. As you advance, you'll get to grips with different remote pair programming strategies and find out how to choose the most suitable style for your team and organization. The book will take you through the process of setting up video and audio tools, screen sharing tools, and the integrated development environment (IDE) for your remote pair programming setup. You'll also be able to enhance your remote pair programming experience with source control and remote access tools.

By the end of this book, you'll have the confidence to drive the change of embracing remote pair programming in your organization and guide your peers to improve productivity while working remotely.

What you will learn

  • Develop a structured organizational approach to implementing pair programming and using it effectively
  • Understand how pair programming fosters better communication inside and outside the team
  • Organize remote pair programming and choose the right style for your organization
  • Set up screen sharing, IDE, source control rules, audio, and video for your remote pair programming setup
  • Use various pair programming techniques and styles in the context of a remote environment
  • Enhance your remote pair programming experience with source control and remote access tools

Who this book is for

This book is for any developer who wants to understand the different practical aspects involved in remote pair programming and adopt them in their existing development teams. If you're a team leader or technical manager, this book will serve as a manual for implementing remote pair programming covering the best resources for you to manage communication and collaboration using pair programming with your team members working remotely in distributed teams.

Table of contents

  1. Practical Remote Pair Programming
  2. Contributors
  3. About the author
  4. About the reviewer
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the color images
    5. Conventions used
    6. Get in touch
    7. Reviews
  6. Section 1: Introduction to Pair Programming
  7. Chapter 1: Pair Programming and Its Necessity
    1. The history of pair programming
    2. Elucidating problems in pairs
      1. Managing complexity
    3. Sharpening our knowledge
      1. Collaborative work
      2. Leveling knowledge
      3. Advancing knowledge
    4. Gaining wisdom
      1. Improving the system
      2. Staff liquidity
    5. Managing complexities in complex domains
      1. Managing complex domains
      2. Difficult tasks
      3. The fastest feedback code review
      4. Minimizing the defect rate
    6. Comfort for the future you
      1. Code is more often read than written
      2. Exploratory testing with pair programming
    7. Programming with your CEO
      1. Social programming
      2. The rubber duckling effect
    8. How does pair programming work?
      1. Knowledge work and knowledge workers
      2. Time well spent
    9. Summary
    10. Further reading
  8. Chapter 2: How Can Pair Programming Help?
    1. Defining pair programming
      1. Driver
      2. Navigator
      3. Trainer/facilitator
    2. Boosting efficiency
      1. Reducing task switching
      2. Taking breaks
    3. Situations when pair programming can help
      1. Bettering efficiency
      2. Improving technical skills
      3. Aiding knowledge transfer
      4. Improving communication
      5. Enhancing problem-solving capabilities
      6. Simplifying the existing code base
    4. Situations when pair programming is difficult
      1. Working alone
      2. Lack of safe space
      3. Only I want to pair from my team
    5. Working better with colleagues with other specializations
      1. Pairing with a tester
      2. Pairing with a UI designer
      3. Pairing with DevOps
      4. Pairing with a business analyst
    6. Pair programming in practice
      1. Learning new things or tricks
      2. Being social – social programming
    7. Pair programming cannot solve everything
      1. Unclear requirements
      2. Bad coding practices
      3. Tension within the team
      4. Tension within the organization
      5. Close to deployment time
    8. Summary
    9. Further reading
  9. Chapter 3: Exploring Pair Programming Techniques and Styles
    1. Understanding pair programming techniques
      1. The Driver-Navigator technique
      2. The Pairing-Trainee technique
      3. The Beginner-Advanced technique
      4. The Beginner-Beginner technique
      5. The Ping-Pong technique
    2. Improving pair programming with styles
      1. Unplanned pairing
      2. Traditional pairing
      3. Elastic pairing
      4. Strong-style pairing
    3. Organizing pair programming
      1. Round-robin pairing
      2. Promiscuous pairing
      3. Selective pairing
    4. How often do we need to pair?
      1. Should you pair for the whole day?
      2. Should you pair daily?
      3. Should you pair weekly?
    5. Exploring different communication methods
      1. Aggressive communication
      2. Submissive communication
      3. Assertive communication
      4. Making a difference with the right words, tone, and clarity
    6. Pair programming best practices
      1. Taking notes while pair programming
      2. Starting with some small talk
      3. Emptying your cup
      4. Debriefing
      5. Dialogue courtesy
      6. Building confidence – committing often and having good unit tests
      7. Trusting your pair
    7. Pair programming anti-patterns
      1. Managing distractions
      2. Centering the monitor
      3. Dealing with the "I know it all" attitude
      4. Addressing small pickings
    8. Boosting productivity with remote pair programming
    9. Summary
    10. Further reading
  10. Section 2: Remote Pair Programming
  11. Chapter 4: Using Pair Programming in a Distributed System
    1. Technical requirements
    2. Organizing remote pair programming
      1. The purpose of remote pairing
      2. Distributed team
      3. Deciding on the scope
      4. Duration
      5. Pomodoro technique
      6. Schedule
      7. Kickoff
      8. Concerns
      9. Good practices of pairing
      10. Anti-patterns
    3. Performing regular retrospectives
      1. How often we should retrospect
      2. Retrospective techniques
      3. What happens after a retrospective?
    4. Improving the restrospectives continuously
      1. Analyzing the results
      2. Personal introspection
      3. Tools analysis
    5. Summary
    6. Further reading
  12. Chapter 5: Remote Pair Programming Setup
    1. Technical requirements
    2. Checking the internet connection
      1. Using a cable connection
      2. Using a Wi-Fi connection
      3. Using a portable router
    3. Setting up video and audio
      1. Setting up video
      2. Checking the lighting
      3. Choosing the camera
      4. Understanding the camera's position
      5. Checking the audio
      6. Introducing audio
      7. Choosing a microphone
      8. Positioning your microphone
      9. Use headphones, not loudspeakers
      10. Mute pairing
    4. Setting up the IDE
      1. Key editor functionalities
      2. Best IDEs for remote pair programming
      3. Intellij IDEA
      4. Best editor plugins for remote pair programming
    5. Setting up screen sharing
      1. Introducing TeamViewer
      2. Introducing AnyDesk
      3. Introducing Screen
      4. Introducing Use Together
      5. Introducing Tuple
      6. Introducing Zoom
      7. Introducing Google Meet
      8. Introducing Skype
    6. Learning to use source control
      1. Source control tools
      2. Commit often
      3. Ensemble commits
      4. Rotation
    7. Using two computers for coding and remote screening
    8. Summary
    9. Further reading
  13. Chapter 6: Remote Pair Programming-Specific Techniques and Styles
    1. Recap of main concepts of pair programming
    2. Understanding general setup
    3. Understanding the remote driver-navigator technique
      1. Remote setup
      2. Remote specifics – driver
      3. Remote specifics – navigator
    4. Remote ping-pong technique
      1. Remote setup
      2. Remote specifics – driver
      3. Remote specifics – navigator
    5. Remote beginner-advanced technique
      1. Remote setup
      2. Remote specifics – driver
      3. Remote specifics – navigator
    6. Traditional pairing style
      1. Remote setup
      2. Remote specifics
    7. Remote elastic pair programming style
      1. Remote setup
      2. Remote specifics
    8. Remote strong style
      1. Remote setup
      2. Remote specifics
    9. Good remote practices
      1. Remote breaks
      2. Secondary communication channel
      3. Remote commit approach
    10. Summary
  14. Section 3: Tools to Enhance Remote Pair Programming
  15. Chapter 7: Video and Audio
    1. Recap of what we have learned so far
      1. General technical aspects
      2. Audio is more important than video
      3. Video settings
      4. Screen sharing settings
      5. Quality sound and video for the win
    2. Learning how to enhance video
      1. Looking into the camera
      2. Using a green screen
      3. Using a virtual background
    3. Learning to enhance audio
      1. Speaking into the microphone
      2. Using an audio compressor
      3. Performing soundcheck
      4. Monitoring the sound
      5. Adding a pop filter
    4. Enhancing speech
      1. Employing diction
      2. Choosing words
      3. Warming up your voice
    5. Summary
  16. Chapter 8: Source Control Rules
    1. Recap of the source control rules
      1. Using source control
    2. Improving source control usage
    3. Using the commit types
    4. Understanding commit heuristics
      1. Committing when part of a feature is done
      2. Committing when all the tests are written, and green, for a user scenario
      3. Committing before taking a break, in a stable state
      4. Committing when the preparatory refactoring is done
      5. Committing when one characterization test is done
      6. Committing when one unit test is green
    5. Summary
    6. Further reading
  17. Chapter 9: Remote Access
    1. Recapping the rules of remote pairing
    2. Understanding how remote access tools work
      1. TeamViewer
      2. AnyDesk
      3. Screen
      4. Chrome Remote Desktop
    3. Relying on tools
      1. Bug magnet
    4. Security for remote access
    5. Summary
    6. Further reading
    7. Why subscribe?
  18. Other Books You May Enjoy
    1. Packt is searching for authors like you
    2. Leave a review - let other readers know what you think

Product information

  • Title: Practical Remote Pair Programming
  • Author(s): Adrian Bolboaca
  • Release date: March 2021
  • Publisher(s): Packt Publishing
  • ISBN: 9781800561366