In many Software projects developers have to install and configure their Software Development Environment (SDE) by themselves. This causes a blooming variety in the tooling landscape which can easily become a Software Zoo. Developers in the team may use different tools and individual configurations. Wrong settings appear during the development and decrease the productivity of the team. Additionally, new members have to spend more time with configuration instead of coding. In the end, the team has to fight its way through this thick jungle of a sprawling variety of configuration and misconfigured Software.
My intention was to tackle this issue in my own team and to engage developers with more coding. Therefore, I decided to use VHD (Virtual Hard Disk) images that contain pre-configured environment variables and pre-installed Software. This ensures that all developers have the same setup and won’t spend time with puzzling over environment variables or Software settings. Further, new team members get started faster and can instantly begin to write code. Developers will have a clean standardised environment that is portable and well understood with a well-structured configuration and Software setup.
With this SDE we manage our Software development in a better way than before. We use RTC (Rational Team Concert) as VCS (Version Control System) to respond very quickly to changes in the Software to adjust our tests. Furthermore, we ensure our code quality with SonarQube to achieve a kind of code review and a good code quality. To distribute our tests to other developers for execution we use an Archiva Repository Server with Maven.
Structure of the SDE
The Software Development Environment (SDE) is divided into two VHDs (Virtual Hard Disks). This provides a separation between Software and source code.
The SDE image contains in the sde folder all environment variables and scripts which start the programs in the software folder. The software folder contains Eclipse with its plugins which are separated in the dropins folder, a JDK and Maven. The Code VHD contains the source code which is under version control with RTC. Additionally, it has a local Maven Repository which is used for JAR artefacts. This repository accesses the Archiva Repository if artefacts are missing in the local repository. The source code is analysed by SonarQube to ensure the code quality and to reduce possible errors.
With this setup our team can manage its development environment much better than before. Also we can respond faster to new tasks for performance tests and more of our workflow to deliver packaged performance tests is automated.