So today my tech lead suggested that instead of each developer having their own VM, we all remote into a single VM for our daily development tasks.
I’m worried that this could cause issues with things like git and overall workflow. From what I know, it’s more common for each developer to have their own VM.
The main reason for this suggestion is to save on license costs—just install the license on one VM instead of multiple. My tech lead also mentioned that this is a common practice in the market.
Has anyone tried this setup before? How did it work out for you?
Sharing a single VM for development tasks can save on license costs, but it does come with potential issues like Git conflicts and workflow disruptions, as simultaneous access could lead to problems with version control and productivity. While some teams use shared VMs to manage costs or maintain consistency, it typically requires careful management to avoid conflicts and ensure security. You might want to discuss these concerns with your tech lead and consider other cost-saving options or solutions that allow individual VMs to avoid these pitfalls.
Using a single VM for development is generally not advisable. Although it may appear to save costs, it can lead to significant productivity and collaboration challenges.
Potential Issues:
Performance Bottlenecks: Multiple developers sharing the same resources can cause performance problems, especially during high-usage periods.
Version Control Conflicts: Managing various code versions and dependencies becomes difficult in a shared environment.
Security Risks: Sharing a single VM heightens the risk of data loss or security breaches.
Developer Experience: Individual development environments are essential for maximizing productivity and efficiency.
Alternative Solutions:
Individual VMs: Although potentially more costly, individual VMs offer superior performance, isolation, and flexibility for each developer.
Containerization: Tools like Docker provide a balance between resource sharing and isolation.
Cloud-Based Development Environments: Platforms such as Gitpod or Codespaces offer scalable, cloud-based development environments that can be easily shared.
While it may be tempting to cut costs by sharing a VM, the drawbacks often outweigh the benefits. Prioritizing developer productivity and efficiency is crucial.
If the lead is indeed going to such extreme measures to save money, it would be a far better use of everyone’s time if one developer took up guitar lessons, went to the closest train or bus station, and started playing music for the about $50 per month he’s saving by underfunding his development team. Even if it’s still absurd, that would be a far better use of everyone’s time.``