I have always found setting up a project development environments overly time consuming and difficult. I would like to know your best practices for setting up an environment.
Some difficulties I found with environment setup include:
- Keeping the environment up to date with latest patches vs. synchronized with other developers
- Inconsistent file paths between developers that leads to different configuration files
- Unable to reproduce a setup without difficulty due to undocumented steps/information
- Documentation is time consuming
- Conflicts with older projects (i.e. multiple servers on same ports or changed PATH variables)
More specific environment questions include:
- Do you create an environment setup document? Have you found this successful?
- When updates are released for your current setup, what do you update and what do you keep constant? (IDEs, 3rd party plug-ins, libraries, etc.)
- If you use a repository, what setup components do you recommend storing in it? (setup documents, software installs, libraries, databases, drivers?)
- Does anyone use disk/system images and/or VMs to synchronize developer environments?
- To what extent do you reuse setups between projects? (whole environment, project, code)?
Thank you and please add any questions or difficulties you have.