1. A method for managing a user's computing environment on a computer device or workstation, comprising: storing a plurality of files in a memory device of a server linked to a communications network, each the files comprising data defining a distinct computing environment; storing, by the server, a plurality of applications, wherein the plurality of application include multiple versions of at least one application of the plurality of applications, each of the applications and versions being associated with at least one of the distinct computing environments; providing, by the server, an environment management engine in a user home directory accessible by the computer device; operating a processor to run a shell in the computer device; invoking, by the shell, the environment management engine by accessing the user home directory; determining a job state for the computer device from a plurality of job states stored in the memory device, each of the job states corresponding to a task within a project performed through operation of the computer device, wherein the determining is based on an indication, provided by a user, of the task; and providing, by the environment management engine, a selected computing environment in the computer device based on the data defining a distinct computing environment in one of the files in the memory device, wherein the providing comprises: selecting the one of the files from the memory device based on the determined job state, generating the selected computing environment, the generating comprising loading and executing one or more environment settings from the file and further comprising loading each of the application versions associated with the distinct computing environment corresponding to the selected file, and presenting the selected computing environment to the user.