0%

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