One of the principles I like is being able to set up new development environments very quickly. The java space offers many libraries for managing your environment that means that each project works in a separate space. In contrast, in the .Net space an anti-pattern is one that often requires many installs to your GAC (Global Assembly Cache) often through the use of a “mouse-driven”-only installer.
Fortunately the ruby community offers a number of tools for managing both versions of ruby and the libraries that you use. The ones that I will often reach for, now include:
- RVM – Ruby Version Manager. Allows you to have different versions of ruby, and to quickly switch between them
- Bundler – Management of gems.
The ultimate acceptance test for this, is can developers simply “check-out” and go. The lead time to setup a new development environment should be very quick.
Note that there is now a competing tool for managing environments called RBenv although integrated tool support (like in RubyMine) is only starting to come through