7 ms·
Tools for Remote Software Development and Pair Programming
- welder 9y agoI find a private leaderboard keeps me updated on my remote friend's programming and helps me feel connected to what they are working on: https://wakatime.com/features#leaderboards https://wakatime.com/features#leaderboards
- roblabla 9y agoAt my current place (team of 5), we set up Zerotier[0] to create a LAN between all of our computers and servers. This lets us directly ssh into each-other's machine, simplifies file sharing to an rsync, etc... I find this works really well, as when someone has a bug and needs help, we can all access http://<hisip>:8000 http://<hisip>:8000 to access the instance he's working on, and ssh into the machine to get access to the logs to try and help figure out what's wrong. Disclaimer : just a happy Zerotier user. [0]: https://www.zerotier.com/ https://www.zerotier.com/
- npstr 9y agoI find https://localhost.run https://localhost.run to be a great tool when you need a tunnel to your machine to show things. Just a line of ssh, works everywhere.
- gardnr 9y agoWorks better for me without https http://localhost.run/ http://localhost.run/
- danielhunter 9y agoI'm surprised this wasn't mentioned, I've used it before with great results. https://atom.io/packages/atom-pair https://atom.io/packages/atom-pair
- coolbreeze 9y agoHangouts and tmate
- W0lf 9y agoI've used a shared tmux session over ssh in the past, which worked quite nicely without installing any extra software (besides tmux obviously)
- caiob 9y agoIs Wemux (https://github.com/zolrath/wemux https://github.com/zolrath/wemux) still relevant?
- mikekchar 9y agoNot the OP, but as a frequent tmux pair programmer, I've never found wemux to be particularly relevant. It's useful if you don't know how to use the advanced features of tmux. Everything in wemux can be done in tmux -- you just need to know how to do it. Having said that, reading the tmux manual is something that might occupy you for more time than you would like to spend :-)
- goerz 9y agoYeah, tmux is pretty powerful all by itself, and perfectly suited for pair-programming, assuming ssh is set up. I wrote a little wrapper script a while ago to handle the setup of the ssh keys on a temporary basis (the partner's SSH key is allowed to attach to the appropriate tmux session only and is removed when disconnected): https://github.com/goerz/tmuxpair https://github.com/goerz/tmuxpair
- mikekchar 9y agoI do something similar. I set up a "pair" user on the system whose login shell is just a script that attaches to the tmux session. The script that starts the tmux session, sets the group permissions on the socket to "pair". This means that even though the "pair" user has their ssh key in pair's authorised_keys file, they can't log in unless there is an ssh session with the appropriately shared socket. Also, they are never logged in as your user (though, sharing the session, they can do whatever you can do -- only you are guaranteed to be able to see it).
- brightball 9y agoThe system that Slack bought was the best I've seen. Can't remember the name of it though.
- rekwah 9y agoGuessing you're talking about Screenhero. https://screenhero.com/ https://screenhero.com/
- brightball 9y agoThat's it. That system was fantastic.
- patrick_haply 9y agoWas? Are you saying you don't hold that opinion anymore, or do you just not use it?
- notpeter 9y agoSignups have been closed for 2.5 years since they were acquired by Slack. http://blog.screenhero.com/post/109337923751/screenhero-joins-slack http://blog.screenhero.com/post/109337923751/screenhero-join...
- brightball 9y agoYep. That's what I was talking about.
- djeikyb 9y agoinvites seem to work still
- oAlbe 9y agoI think he means that since Slack bought them, they closed the registrations and have been "integrating with Slack" for some over a year now I belive.
- snarf21 9y agoI used to think there was a lot of value in the concept of pair programming but I think the Pull Request and Code Review model is simply superior. It allows for a lot of the benefits of pair programming but with lower costs. I've always found that even looking over someone's shoulder to help debug something slows to a crawl. It takes more discipline than most engineers have to keep it truly paired.
- djeikyb 9y agoWhat kind of pair programming have you engaged in, beyond the "debug over the shoulder" scenario?
- snarf21 9y agoTo be honest, it has been a while but I did try it for developing code. The main issue is that (not bragging) I was working with an older, more "senior" developer but I was a much stronger developer. When he was driving, he wouldn't really have a plan for what to work on next. Maybe it was someone looking over his shoulder, I'm not sure. He also had trouble following when I was driving even though I spent extra energy trying to explain what I was doing. As has been discussed, it takes a lot of discipline and matched skill levels and approaches to be successful (imo) and I think that is the exception not the rule. ymmv, so to each their own.
- djeikyb 9y agoymmv for sure. i suspect that pairing is far less valuable if not used in tandem with other XP techniques (eg tdd, ci/cd, continuous process). but certainly pairing isn't the One True Agile Way ;)
- TheAceOfHearts 9y agoI've had a occasionally successful pair-coding experiences, but I'd say I generally agree with you. Pull requests and code reviews have a lot of benefits. It lets the team work asynchronously, so you can collaborate more effectively with remote workers from around the world. As you make some changes, other people in your team might be interested in the reasoning which lead to that decision, and you can point to the pull request's discussion. In addition, it lets you think about the problem over a longer period of time, without putting anyone "on the spot"; sometimes you just need to let things stew for a bit.
- danellis 9y agoWhat about a shared whiteboard, though? That's the one thing I'm missing at the moment. Using one of those with a couple of nice graphics tablets would be great.
- macintux 9y agoI have lamented the lack of a good online whiteboard experience for decades now. I think the real problem is that for a proper whiteboard, we need obscenely large and high-resolution displays. Analog is much better than digital in this particular.
- pfranz 9y agoSmoothDraw[1] is what Kahn Academy uses, but it lacks those features you mention. Milton[2] is an open source stroke based application, so you get infinite canvas and infinite zoom. Neither are network-based though and it's tough to beat a physical whiteboard. [1] http://www.smoothdraw.com/sd http://www.smoothdraw.com/sd [2] https://github.com/serge-rgb/milton https://github.com/serge-rgb/milton
- trevyn 9y agoHaven't tried it, but the Google Jamboard looks pretty nice.
- maxxxxx 9y agoWhiteboarding is one of the biggest problems working with offshore devs. I am kind of surprised that after all these years there still is nothing out there that works as well as a physical whiteboard.
- seanp2k2 9y agoYou might be interested in https://gsuite.google.com/products/jamboard/ https://gsuite.google.com/products/jamboard/ though I doubt your company would pay for each of you to have one at home. It's more of an office to office type of thing, I think.
- 9y ago
- aantix 9y agoHow did they fail to mention Floobits? https://floobits.com https://floobits.com Real-time collaborative editing with text editors and IDEs. Supports Sublime Text, Atom, Neovim, Emacs and IntelliJ IDEA (which includes the family of editors, e.g. PhpStorm WebStorm PyCharm RubyMine, etc) It can be pretty interesting to watch two people code in one of the public workspaces.. https://floobits.com/active https://floobits.com/active
- jweir 9y agoIf you are developing with Vagrant boxes -- Vagrant's built in share (and tmux) working pretty well for pairing or reviewing. https://www.vagrantup.com/docs/share/ https://www.vagrantup.com/docs/share/
- tscolari 9y agoAnnoying website forces you to have cookies enabled... I refuse to open this.
- Gonzih 9y agoI use appear.in and/or vnc nowadays a lot for pair programming.
- seanp2k2 9y agoHow's the latency with VNC these days? I haven't used it in probably 10 years, but it was pretty bad back then and basically only useful for emergencies in my experience. Edit: IIRC VNC being awful was why Citrix became so popular way back when. Something something thin client something proprietary compression algorithm. Is that ringing any bells?
- segmondy 9y agoI've always used tmate.io inside a linux container. The only downside is the person I'm pairing with must be comfortable with command line interface.
- MarkMc 9y agoI used to use TeamViewer for remote pair programming - even forking out $700 for a licence - until I discovered it had a huge security hole: https://www.optiv.com/blog/teamviewer-authentication-protocol-part-3-of-3 https://www.optiv.com/blog/teamviewer-authentication-protoco... Won't trust them again.