Ping-pong is a pair programming technique where two programmers work together to solve a problem. It could be implementing a new feature, fixing a bug, etc.
The difference between this technique and other common techniques like the driver/navigator through Google Meet is that, in the Ping-Pong pair programming session, one programmer starts writing a test. With the test failing, the other programmer writes code to pass the test. After getting green, the second programmer writes a new failing test that the first programmer needs to implement the code to make that test pass.
The cycle then repeats until both programmers achieve the initial goal.
Why ping-pong pair programming is a thing in a remote environment?
Personally, I feel more connected to my working partner when working in this way. We can debate about how to implement the code, about how the code will communicate with the system and how well tested the new feature/bug fix is.
Also, writing tests first provides more guidance about what you need to do and sets clear expectations about the code.
To do that, we need some tools. I think that the most used today is VSCode Live Share, where we can share a coding session that includes server tunneling and access to the host terminal. It is very useful to put the tests running in the terminal and just write code together.
JetBrains has a tool integrated into its IDEs called Code with Me. I have never used it, but it looks spectacular from the outside.
Alongside those tools, we have a bunch of other shared programming environments like Codesandbox.
Either way, working together with another person in a remote environment is great! Thoughtbot had an excellent video teaching the hows with a live example.
Also, Tuple guys published a blog post about antipatterns that should be avoided when pairing.
Original: https://dev.to/gustavofsantos/how-to-do-ping-pong-pair-programming-in-a-remote-environment-ica