Each of our developers here at msnbc.com has a completely self-contained development environment. That includes a restored copy of our production databases. Each dev’s workstation is just a host for several virtual machines: one for work in our legacy system, one for work in SkyPad (our new CMS), and one for databases.
Using VMs for development is great. In combination with Windows Deployment Services (WDS), it allows a developer to be up and running with a brand new environment about an hour.
On the down side, you need to make sure you have excellent disk performance. Our main Visual Studio solution has close to 100 projects. We are planning to divide that up, but in the meantime it was taking more than a minute to rebuild the entire solution. That’s on a machine with two striped hard drives.
I was recently the guinea pig for getting a nice SSD drive to run my VMs on. Wow, does it ever make a difference. Build time, solution load time, and app startup time were all cut by 40-50%. Running the installer for our various apps, which does a lot of reading from and writing to disk, shows similar speed improvements.
Some back of the envelope calculations: Very conservatively, the drives are saving me 5 minutes/day. That’s 2 hours/month, or 3 full working days/year. At a very conservative fully loaded cost of $100k for a developer, that’s $1200 savings per year.
The SSDs we bought cost less than $500 each.
So we get 140% ROI the first year, and another 240% each year after that. That doesn’t factor in all the mental context switching costs when you go for coffee, switch to email, or start checking Facebook. Or the code quality goodness from encouraging frequent builds and test runs. Or the business value of features delivered earlier. Or overall developer happiness (and retention).
Does it get any better than that?