More sophisticated software requires dedicated and well configured development environment. Programming tools like compilers and interpreters, database tools, profilers and other supporting software available during development activities improves the development process.
When the problem occurs?
Till the project is being worked on by one permanent team or the engineers fluctuation is marginal, the problem does not exists. Developers already involved in the project can assist and guide newcomers.
The problem is very likely to occur when a project is inherited from somebody. The client often hears we don't have access to previous developers, which is the easiest way of avoiding the problem.
This can lead to additional costs and a drop in quality because of:
- Extra time needed to recreate the works on the development environment
- Inability to identically recreate development environment due to missing technical knowledge
- Potential problems caused by missing some old libraries (not being able to get a hold of them)
What can we do?
The simplest and most recommended solution is to:
- Create virtual machine images
- Document which versions of the libraries are installed
The project documentation should contain:
- Information on where we can find virtual machine images
- A list of the used libraries, their versions and offline access to them
The knowledge about the development environment should be an integral part of the project solution and the technical documentation.