In my current organisation, we have several different build environments (like toolset etc.) which are needed for compiling the code of different modules within same product. I found this a big mess where every engineer, in order to build his or her codebase has to first to go through the mundane task of setting up his dev machine confining to that modules requirements. For e.g. recently I had to jump to a different module to code their interface that interacts with mine. For this I have to spend considerable time to actually create a dev environment where atleast the code can get compiled. I think this is pretty messy and often led to wasting time doing stupid things. Is this really a good practice that other companies follow as well? I was wondering if I should write scripts that can do this automatically or this any other way as well, like having a common build setup that acts as superset for all modules (though it might have some extra stuff in itself)?