
Sometimes your code won’t even run on your colleague’s workstation, because there’s a bug in her older JRE version. How can you make sure everyone is working with the same configuration? Sometimes even differences between minor Java versions can cause different app behavior.

This becomes even more problematic when you’re part of a team. Configuring all of this takes hours, so forget about first-day productivity, and if you fail, all you’re going to get are some cryptic error messages that you have to type into Google. Gods help you if you find yourself in the hell of “hidden” dependencies, like libraries you’re supposed to have installed separately.

In some cases, you would also have to work on a given version of the operating system. But still, you need to install a specific version of the database, then make sure you have the right compiler and runtime environment. Sure, the IDE does the lion’s share of preparations for you.

For many developers, managing the environment required to work productively is a quite tedious task.
