Challange
We have four introverts that want to pair and do some debugging. So each one prefers to sit in his dark dark corner and drink dark dark chocolate maybe with some rum and cat.
How To
It is multiple ways how we could make the job done.
Share screen
The most naive way. Any messages + git. So you start screen sharing and from time to time push to shared branch when you want to change a DRIVER.
pros
- stupid simple
- all tools work everywhere
- platform and editor independent
cons
- no colaborative editing
- network preasure
RDP and share control
RDP is more windows protocol, but it is easy to find tools like a Teamviewer. The main benefit now we could give a mouse and keyboard control to your partner.
pro
- 2 people could edit and interact with a screen
- TeamViewer have shared clipboard
cons
- crazy traffic as same as for screen share
- lags
Tmux shared console.
It is an excellent idea. I use a tmux for a long time to organize a console and create a nice multiconsole environment on remote servers.
The coolest part that you could connect wholly and remotely minв blowing that multiple users could attach to the same session.
So flow is simple
- Alice and bob ыыр to a server
- Alise start a session
- Bob connect to a session
pros
- small traffic footprint
- you share entire terminal
cons
- terminal only
- require tech skills
- for windows, some black magic is required
The clouds IDE
It was a hipe with a cloud ide. You could find a cloud eclipse ide and so one.
IDE list
- eclipse like
- https://codeanywhere.com/
- https://github.com/apple/swift/tree/master/tools/SourceKit
- https://shiftedit.net/about
Cloud 9
One of the most popular is Cloud 9.
Now cloud 9 is a part of Amazon. It allows you co-edit and even co-develop.
On practices, you develop in the browser.
pros
- easy
- no extra tools
cons
- not free
- the code is fetched and stored outside your machine
- not special tooling
Share the same love to editors
For now, significant issues in all approaches that we stick users to share a session and it is the same as your code in somebody else machine with crazy settings that you hate.
So maybe you share the same editor like emacs. Then you can use a pair of plugins like
editor | plugin |
---|---|
emacs | https://github.com/tjim/lockstep |
vim | https://github.com/FredKSchott/CoVim |
atom | https://teletype.atom.io/ |
sublime | http://teamremote.github.io/remote-sublime/ |
Visual Studio Code Live Share
It is one more environment dependent tool, but I haven’t seen anything like that before. Yo share editing and debug session in a way that your colleague can use VS сode or VS with own settings, tooling, shortcuts.
More on video.
I have used it. It is practically the best experience as for now. Docs.
Saros
It is research open source IDE developed in Berlin. Quite promising. Folks want to add IntelliJ support soon
pros
- it is awesome co-editing
- co-debugging with independent inspect
cons
- VS specific
- require registration
- intermidiate server, so potential security issues
Floobits
https://floobits.com/
I haven’t used it. You could use any editor or environment to pair.
Looks cool but it is not for free.
pros
- use what you want
cons
- no co debug
- not free
- registration
Links to useful resources
- https://developers.hp.com/epic-stories/blog/couples-counseling-pair-programmers-working-out-how-work-together
- https://raygun.com/blog/remote-pair-programming/
- https://gist.github.com/rouzbeh84/4bafc9fe4fe02edf506d11997c4674b0
- http://remotepairprogramming.com/
- http://www.zeespencer.com/building-a-remote-pairing-setup/
- https://medium.com/codingzeal/a-guide-to-remote-pair-programming-tools-9ee20e06aa0c