𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Practical Remote Pair Programming: Best practices, tips, and techniques for collaborating productively with distributed development teams

✍ Scribed by Adrian BolboacΔƒ


Publisher
Packt Publishing
Year
2021
Tongue
English
Leaves
240
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


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. Pair Programming and Its Necessity
  2. How Can Pair Programming Help?
  3. Usual Pair Programming Techniques and Styles
  4. Using Pair Programming in a Distributed System
  5. Remote Pair Programming Setup
  6. Remote Pair Programming Specific Techniques and Styles
  7. Voice and Audio
  8. Source Control
  9. Remote Access

✦ Table of Contents


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


πŸ“œ SIMILAR VOLUMES


Practical Remote Pair Programming: Best
✍ Adrian Bolboacǎ πŸ“‚ Library πŸ“… 2021 πŸ› Packt Publishing 🌐 English

<p><span>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</span></p><h4><span>Key Features</span></h4><ul><li><span><span>Implement remote pair programming best p

Remote Pairing: Collaborative Tools for
✍ Joe Kutner πŸ“‚ Library πŸ“… 2013 πŸ› The Pragmatic Programmers 🌐 English

You've heard about pair programming's benefits: fewer bugs, improved skills, and faster delivery. But what happens when you want to pair with someone in another city, country, or even hemisphere? With the right tools, you won't have to relocate to refactor. In this book, you'll learn techniques used

Collaborative Web development: strategie
✍ Burdman, Jessica πŸ“‚ Library πŸ“… 1999 πŸ› Addison-Wesley Professional 🌐 English

In Collaborative Web Development, author Jessica Burdman shares the successful secrets of managing a web project, including collaboration, communication, and budgeting. The book provides many case studies of both successful and unsuccessful Web sites, and will help web-project managers pick and mana

Reimagine Remote Working with Microsoft
✍ Sathish Veerapandian, Harsharanjeet Kaur, Ashok Madhvarayan, Sriram Rajamanickam πŸ“‚ Library πŸ“… 2021 πŸ› Packt Publishing 🌐 English

<p><b>Get a 360-degree view of Teams as a secure collaboration tool with best practices and recommendations for using Teams efficiently</b></p><h4>Key Features</h4><ul><li>Master and manage virtual meetings easily using Teams</li><li>Understand the essential security and administration aspects of Mi

CMake Best Practices: Discover proven te
✍ Dominik Berner, Mustafa Kemal Gilor πŸ“‚ Library πŸ“… 2022 πŸ› Packt Publishing 🌐 English

<p><span>Explore a compendium of creating and maintaining CMake projects without any overhead using tips, tricks, and techniques to empower your workflow</span></p><h4><span>Key Features</span></h4><ul><li><span><span>Understand what CMake is, how it works, and how to interact with it</span></span><