Pair programming is done through face-to-face environment. What if the pairs are separated in remote environments. Can it be done? or it will sink the productivity. This article will discuss how to make the pair programming, work well in remote environment. We have five tips that can be applied.
#1 Choosing the correct tools
Choose collaboration tools that support real-time code editing, screen sharing, and voice or video calls. Popular options include VS Code Live Share, JetBrains Code with Me, and collaborative IDE plugins. Make sure both participants install and test these tools before the session. My choice is
Creating a group chat in MS Team for async communication
Creating a Project Teams channel in MS Team for quick notes
Choosing VS Code life share
#2 Communication Practices
Effective remote pairing hinges on open and continuous dialogue. Always verbalize your thought process as you type to keep both partners in sync
Create schedule in your calendar
Do daily stand up before pair programming
Find a proper schedule for both parties
#3 Pairing Techniques
You need to calibrate your pair techniques based on situation
Driver-Navigator: one person types (driver) while the other reviews each step and suggests improvements (navigator). Switch roles every 15–20 minutes to balance engagement and learning. this technique is recommended when you have tight deadline,
Ping Pong: especially in test-driven workflows, alternate writing tests and implementing code. One writes a failing test, the other makes it pass, then swap roles. this is recommended to validate and refactor the coded
Unstructured Pairing: once you’re comfortable with each other’s styles, allow fluid role changes as needed to maintain momentum. This is recommended when you need to calibrate with your pair
#4 Environment and Ergonomics
Agree on an IDE or editor configuration that both developers know. Avoid forcing a partner into an unfamiliar setup, as it doubles cognitive load and disrupts flow. For example,
Use Development database in Azure so that you dont need to change configuration when switching the role
Use similar codes convention to make familiar setups with pair
Find good place to work together. Renting a private Co Workspace or cubicle is a good way to start
#5 Follow-up and Documentation
After each session, capture key decisions, open issues, and next steps in a shared document or pull request description. Commit with clear messages so that teammates can review the paired work efficiently.
Creating a to do list for the next or current session
documenting the knowledge in OneNote
writing the finding in Azure Boards or Teams
Programming is a challenging task. You need to focus, to solve a problem, and to create a solution for problem. There are so many ways to do programming. In Agile environment, programming can be done through three ways. Solo programming, Pair Programming, and Mob Programming. This article will discuss when you choose one compare to the others.
Solo (all in one)
This is just like a song from Katty Perry featuring Clean Bandit. Solo! Solo means you do by yourself. You did plan, do, codes, and test activities. The solo great when
Project is simple and less complexity.
Less external dependencies and stakeholders.
Limited user experience
Benefits of solo programming are:
Faster in development
Codes are understandable.
Easy to manage.
Challenge in solo programming is:
Limited design principles applied during the development process.
Exhausted and bored
Undocumented codes
You can learn more here The Personal Software Process (PSP) (cmu.edu)
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Pair (~2 developers in same role)
Pair is a couple way to do programming activity. Pair programming is great when.
Pair is available with different skills and knowledge.
Pair is great when face-to-face communication.
Pair is great when we have same role in a team.
Benefits of pair programming are:
Well-design product two head is better than one.
Transfer knowledge happens.
Shared ownership of the codes. The pair knows the codes.
Challenge in pair programming is:
Slow down the productivity.
Hard to implement in distributed environments (e.g., different time zones)
Suitability of pair person.
You can learn more about pair programming here On Pair Programming (martinfowler.com)
Mob (> 2 members in different role)
Mob is more than two peoples work together. Mob is great when.
Having members with different skillset
Having a good workspace to work together.
Having a jell team with good communication model.
Benefits of mob programming
Project understandability is the highest among the team members.
Validation and verification happen between members.
Near real time feedback model to shape the well-designed project
Challenge in mob programming
Specific infrastructure is needed.
The communication between members should be fluid between team members.
Limited productivity when the others work while the others only see the process.
You can learn mob programming here Mob Programming Basics – Mob Programming
So which one you prefer as your programming style? Put a comment please.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";