Your first day on a new project is usually shot getting a dev environment setup. I’m usually lucky if the process only lasts one day. This is increasingly true as web development goes down the rabbit hole.
It makes me wonder if there is a better way. During a recent security audit, a very knowledgeable and unusually critical co-worker discovered that the company we were investigating used Vagrant as a way of packaging their dev environment. I remember this guy saying, “Vagrant is actually pretty cool” or something on Slack. I figured it was, indeed, pretty cool if he had complimented it.
After researching it today, it does look really useful. Basically it allows you to package a dev environment as a VM-turned-“Box” and then bring up that environment with one command. I think this would be especially useful for open source projects. These projects usually provide a lot of motivation to get started coding quickly, and they also don’t pay. So not wasting time setting up a dev environment is a good thing. I’m thinking that you replace a large chunk of this (admittedly very solid) installation documentation with a single Vagrant box download.
“But that’s a .NET project, not Linux” you ask. It looks like this is still possible, thanks to this awesome post from Matt Wrock. Visual Studio now (finally) comes with a free community edition, and you can get a free trial version of Windows Server 2012, good for 180 days and extendible if need be.
My idea is to make a Vagrant box available alongside project code in Git. Then developers can hopefully spend 7 minutes getting a dev environment setup instead of 7 hours. As an added bonus, Vagrant boxes can be pushed to Docker or even Azure, so if local development is not an option, you can just create a remote dev server to remote into.
Disclaimer: None of this has been tested yet. 😉