From the point of view of development teams task of creating and maintaining deployment environment can be really cumbersome. Imagine you have to install: specific OS, specific Java version, Application Server with proper set of patches and you have to configure data sources. Can you create it once and all the people involved can use it immediately? Can you rollout changes effectively? Can you set up continuous deployment environment easily?
Yes, you can with Vagrant “a tool for building and distributing virtualized development environments”. I won’t cover all the setup which is well covered in Vagrant Getting Started guide, I’ll just try to give you an idea how you can benefit from it.
Vagrant controlls VirtualBox environments and manages configurations using Chef or Puppet. It’s configuration can be stored together with the project in version control system allowing for “infrastructure as code” approach to configuration management.