The world’s worst developer, Joe Gunchy (read more about Joe here) is leading a development team. He has 8 developers on the team, all running different operating systems and versions on their laptops. The guys wearing the skinny jeans and the hoodies are on OS X, the khaki pants/polo shirt guys use Windows, and “Charlie” uses Linux because he refuses to use an OS developed by “The Man”. Joe has instructed everyone on the team to download and install the following things: Eclipse, Maven, Maven plugin, an SVN plugin, Apache, an AEM Author instance, one Publish instance, Tomcat, and a Dispatcher to running in Apache. No worries, he has 2 days for environment set-up scoped into the project – for each developer! That’s 128 hours! Each OS requires a different configuration, environment variables set in different places, and Charlie just can’t seem to get it running at all. It’s been a week for Charlie.
“Works on my machine” – Joe Gunchy
Zero to coding an AEM project in less than 10 minutes
Developer environment configuration and ramp-up time consumes many hours at the beginning of a project. Differences in the developer’s hardware, development IDE set-up time and configuration, establishing connectivity to the source code repository all contribute to precious hours or even days wasted to get the team developing and building in a consistent, repeatable way.
What if you could go from zero to coding an AEM project in less than 10 minutes? Without sounding too much like an ‘infomercial’, you can…
“Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.” Put more simply, Vagrant allows you to “create and configure lightweight, reproducible, and portable development environments.“
We have one pre-configured Vagrant image with AEM Author and Publish instances, a local HTTP server with a Dispatcher, all connectivity to SVN established, and MAVEN configurations for building – all installed and ready for a new developer to check-out and start coding. Vagrant runs on top of a variety of Virtual Machine providers, such as VirtualBox and is supported on Windows, OSX, Linux. Best of all, it’s free.
Typing two commands will get a developer ready to code within minutes.
$ vagrant init name/of/image $ vagrant up
vagrant upis all you need to work on any project, to install every dependency that project needs, and to set up any networking and synced folders so you can continue working from the comfort of your own machine.
Spent the time up front with your architect to get a single, configured development environment ready and you’ll save numerous hours throughout the rest of the project.
Share your results in the comments below.