3 ms·
VSCode on remote VMs is a really great DX. Preconfigured / managed environment with good links to local infra means anyone can work fully remote from any kind o
by nvarsj 4y ago
VSCode on remote VMs is a really great DX. Preconfigured / managed environment with good links to local infra means anyone can work fully remote from any kind of device. And it makes setup time very short regardless of the project complexity.
I suppose the main issue with this kind of approach is cost - a powerful enough AWS instance is really expensive. But you can get beefy dedicated servers from Hetzner for 100/mo that might be a good option for smaller shops.
- joshribakoff 4y agoDisagree, if you need to connect to a network to run the project locally your DX is the worst of the worst. You should be able to run the project locally with docker containers if not on the host machine, the only caveat is if you work at a company like Google where you’d need to spinup thousands of services, but even then you should be able to run the service youre working on locally, at least with unit tests or in isolation, your DX indeed is bad if not. If you cant even use your editor locally thats super cumbersome
- clintonb 4y agoWe can use editors locally. I’ve used RubyMine for my entire tenure. I find devboxes hold a few advantages over running Docker locally: 1. We can have multiple devboxes to aid switching between branches. 2. Services are more easily spun up and down as needed. If I’m only working on the API, I don’t have to waste local resources on the frontend. 3. Devboxes replicate more of the service networking (Consul) to aid debugging (versus using container networking).
- zamnos 4y agoThe problem with local dev, across a large developer org, is that it is local to each developer's machine. Which means that if there's some problem with it, that each developer has to spend time fixing it, or eventually end up going to IT or other devs and ask for help. And devs hate asking for help. The benefit of remote dev, along with standardizing on an editor, is that the company and IT department can say "here is a thing that works, use this one", instead of debugging weird issues on individual developer laptops. If you're IT and someone comes to you and says their mouse doesn't work, do you break out the screwdriver and open it up to try and fix their mouse, or do you just give them a new one that you know works, so they can get back to work while you look into the problem later. Local dev is great when you're at a small company and just starting out, no support, but once you're a software dev working alongside other software devs, most of whom are smarter than you, and then there's a whole other team of devs dedicated to your experience as a developer; local dev feels like a little folksy hometown sort of endeavor. Don't get me wrong, local dev has its place, and some things like writing firmware will always want that, but the industry's moving past it for big picture reasons.
- satvikpendem 4y agoOr the remote dev environment can also just...not work either, as I mentioned here: https://news.ycombinator.com/item?id=34975254 https://news.ycombinator.com/item?id=34975254 That's why having a remote VM doesn't really solve anything, there will always be employee-specific issues.
- nvarsj 4y agoI guess it depends on what to prioritize. In a world of high speed internet, I prioritize fast onboarding time and common developer environments with minimal friction. But yes, it does add a network requirement. However VSCode remote dev works well even with a poor connection ime (coffee shop wifi). I guess it's less important when working in mostly hermetic languages/runtimes like Java. But for things with native dependencies or lots of required tooling where local setup can be a large pain, it really does help a lot. For the dev it becomes: Install VSCode, request VM, done.
- satvikpendem 4y agoI had a friend who was dealing with this exact issue of not being able to connect, even though he had perfectly good internet. Apparently the VPN wasn't working recently, for him specifically, and he literally could get nothing done. He talked to his boss to allow him to set up the dev environment locally. Personally I'd hate having to have an always online connection just to do my own work.