I currently work in an organization that forces all software development to be done inside a VM. This is for a variety of risk/governance/security/compliance reasons.
The standard setup is something like:
- VMWare image given to devs with tools installed
- VM is customized to suit project/stream needs
- VM sits in a network & domain that is isolated from the live/production network
- SCM connectivity is only possible through dev/test network
- Email and office tools need to be on live network so this means having two separate desktops going at once
- Heavyweight dev tools in use on VMs so they are very resource hungry
Some problems that people complain about are:
- Development environment runs slower than normal (host OS is windows XP so memory is limited)
- Switching between DEV machine and Email/Office machine is a pain, simple things like cut and paste are made harder. This is less efficient from a usability perspective.
- Mouse in particular doesn't seem to work properly using VMWare player or RDP.
- Need a separate login to Dev/Test network/domain
Has anyone seen or worked in other (hopefully better) setups to this that have similar constraints (as mentioned at the top)?
In particular are there viable options that would remove the need for running stuff in a VM altogether?