When Vagrant is set up correctly, it works great. A recent project I worked at was beset by Vagrant issues because the offshore development team rolled out the Vagrant solution while they were still working on it: each night, they would tweak it, and each morning we would type `vagrant up` and be hit by a rolling screen of errors. With the time difference, we would have three hours for them to fix it, or spend a day unable to develop. I actually wound up typing more at the command-line than I had before then using Virtualenv and Homebrew. This situation lasted two weeks, and taught me two things: never roll out Vagrant before it’s ready as it will break the whole process, and making any changes to the Vagrant file may still break everything.
When Vagrant is set up correctly, it works great. A recent project I worked at was beset by Vagrant issues because the offshore development team rolled out the Vagrant solution while they were still working on it: each night, they would tweak it, and each morning we would type `vagrant up` and be hit by a rolling screen of errors. With the time difference, we would have three hours for them to fix it, or spend a day unable to develop. I actually wound up typing more at the command-line than I had before then using Virtualenv and Homebrew. This situation lasted two weeks, and taught me two things: never roll out Vagrant before it’s ready as it will break the whole process, and making any changes to the Vagrant file may still break everything.