Live data from Hacker News

Tools for Remote Software Development and Pair Programming

zapier.com

41–50 of 56 posts

Re: Tools for Remote Software Development and Pair Programming

#41

What 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.

I 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.

A little bit "out there" but I've been impressed with 'Dry Erase: Infinite VR Whiteboard'[0]. You get far more space to play with in a virtual environment than you can get on a screen. This would be killer if it supported multiple users over the internet, which is possibly being considered by the dev.[1]

[0] http://store.steampowered.com/app/585040/Dry_Erase_Infinite_...

[1] https://steamcommunity.com/app/585040/discussions/0/14584554...

Re: Tools for Remote Software Development and Pair Programming

#42
post #26

How did they fail to mention Floobits? 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

I am not sure that Floobits is really that widely known. I only heard about it for a short time 2 years ago (where it didn't work when trying it), and never since.

Re: Tools for Remote Software Development and Pair Programming

#43
post #10

I 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.

Pair programming is a skill. Some people do it very well. Some people do it very poorly. It is a skill you can get better at if you practice regularly and have good guidance from people with experience. I like pair programming -- though I personally prefer to do it remotely, believe it or not. I am never comfortable in other people's space (well, my wife being an exception, but I'm not willing to put in as much effor…

I think the experience difference and approach differences are difficult yo overcome. If you are pairing with mostly other senior engineers, maybe it is less of an issue. The other skill that varies greatly is the ability for abstract visualization. I build a model of what I'm working on almost immediately. It takes others time to slowly build it up and draw pictures, etc. I could tell them what I think it should be but they are supposed to be driving. Otherwise, I'm designing it and they are just implementing it and that doesn't feel very pair oriented.

Re: Tools for Remote Software Development and Pair Programming

#44
post #25
post #10

I 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.

> a lot of the benefits of pair programming So much of the work I do as a programmer does not go into the repository. Yeah, that's not ideal, but so much of the work I do is in the technique. In the keyboard shortcut, the ~/.bashrc, the discipline of red-green-refactor, of pomodoro. None of that stuff goes into the pull request, and yet all of it is something my programming pair can experience and learn from. And whe…

I agrer that these things have value too but some places do Developer Share Sessions where one developer does a short presentation on a complicated subsystem or tools they use or a new api that needs integrated.

Re: Tools for Remote Software Development and Pair Programming

#45
post #11
post #10

I 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.

What kind of pair programming have you engaged in, beyond the "debug over the shoulder" scenario?

To 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.

Re: Tools for Remote Software Development and Pair Programming

#46
post #44
post #25

Earlier quoted context omitted.

> a lot of the benefits of pair programming So much of the work I do as a programmer does not go into the repository. Yeah, that's not ideal, but so much of the work I do is in the technique. In the keyboard shortcut, the ~/.bashrc, the discipline of red-green-refactor, of pomodoro. None of that stuff goes into the pull request, and yet all of it is something my programming pair can experience and learn from. And whe…

I agrer that these things have value too but some places do Developer Share Sessions where one developer does a short presentation on a complicated subsystem or tools they use or a new api that needs integrated.

That sounds terribly dull. Unlike during a programming exercise, there's no forcing function during a presentation that impels me to try and put this information in the right place in my mind. Certain note-taking strategies attempt to fabricate such a forcing function, but it's ersatz.

Most of my notes during presentations or long-winded meetings boil down to "what motivated this presenter to speak?" or "why do I have to sit through this?"

Re: Tools for Remote Software Development and Pair Programming

#47

What 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.

It's very bare-bones, but the solution that works most reliably for me is still https://awwapp.com (has been around for ages)

That still leaves a lot of room for improvement. I'd love to see something that has a native iOS app with great Pencil support, as well as clients for other platforms (anything that people tend to use with a pen, like MS Surface), and also a web-app as a fall-back, at least read-only. Low-latency is a must. There are a bunch of solutions I've tried, but most take something like 20 seconds for things to shop up on all the clients (or longer, like a shared One-Note notebook). That just doesn't work for a video conference.

Re: Tools for Remote Software Development and Pair Programming

#48
post #14

Earlier quoted context omitted.

Is Wemux ( https://github.com/zolrath/wemux ) still relevant?

Not 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 :-)

Yeah, 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

Re: Tools for Remote Software Development and Pair Programming

#49

Earlier quoted context omitted.

I 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.

You might be interested in 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.

Not nearly big enough, but a step in the right direction.

Re: Tools for Remote Software Development and Pair Programming

#50
post #26

How did they fail to mention Floobits? 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

NET::ERR_CERT_REVOKED Issuer: StartCom Class 2 IV Server CA
Post reply on HN