3

What are some pros and cons to setting up a development environment locally versus on a remote VM. Let's assume you have remote VMs available for every developer to own exclusively. I've only setup dev environments locally and my current company wants to switch to remote VMs for each developer.

djburdick
  • 11,762
  • 9
  • 46
  • 64
  • This question doesn't really answer remote vs local when you have a remote VM for each dev: http://stackoverflow.com/questions/250063/web-developers-is-it-better-to-do-development-on-your-local-machine-or-on-a-rem – djburdick Mar 23 '11 at 18:24
  • it depends on your developer localisation. If they are far away from your VM server, and may have a crappy internet connexion, i'd say it's a no-go. Also, if you plan to be developping on some specific pieces of hardware (Printers, scanners... etc), that is also a problem, since your developers won't have access to the physical devices they're coding for. – Doodloo Mar 23 '11 at 18:32

2 Answers2

4

Developing locally is faster (by which I mean, there is no lag as a result of the network connection), and you can work offline.

Developing remotely allows you to always have the same, probably controlled, environment to develop in; sometimes the nature of the development environment is such that you must develop remotely as your local machine can't be setup to meet the application requirements. It also keeps all your information in one place, which can provide better security, depending on your setup (i.e., it's easy to steal a laptop, but the laptop wouldn't have any of the information on it).

Andrew Marshall
  • 95,083
  • 20
  • 220
  • 214
3

Personally I have used both scenarios and there are often connection issues and bandwidth problems with working on a remote VM. Also, when you use remote desktop or VNC to connect to your remote VM you may lose some of your favourite key mappings for Resharper or Visual Studio etc.

My favourite way to work is to use a local VM on my laptop or workstation. This VM is the same one that you could have hosted remotely. I install all development software there and keep it separate from my host machine. Then, I set up remote source control and build server on the remote machine all developers can connect to.

I develop locally, check in my code to the shared machine and it performs the build and runs all tests.

Cheers

Winger
  • 676
  • 3
  • 7