Setting and maintaining your environment while running a large number of diverse software applications with different requirements can be a daunting task. The Research Computing is adopting the modules system developed by Robert McLay at the Texas Advanced Computing Center (TACC) in order to ease the complexity of this process and relieve users of this burden.
See Modules Basic Usage for a short practical introduction to using modules.
You can write and use your own modulefiles. The procedure for making them available is very simple. Load the "personal" module to have a "$HOME/.modules" directory automatically created and the environment set up for using it to house your personal modulefile sub-directories. For example, once the "personal" module is loaded you can create a "myapp" sub-directory under "$HOME/.modules" and put a modulefile named version.lua, like "1.0.lua" for instance, into that directory to make the "myapp/1.0" module available.
Those who would like to learn as much as possible about lmod can use the documentation written by the Lmod author.
There is a well-written article on Lmod in the HPC Admin Magazine.