In this blog I begin by showing you how to automate software installations. In the second part, the benefits compared with a manual setup will be outlined.
Context
We currently have a large software project that shall be migrated to Visual Studio 2015. Software developers located in Germany and Czechoslovakia will also join the team. They are entirely new to the project. Target hardware shall be consolidated as well. Another software development team with different software setup requirements is also involved. That is why we want to efficiently setup a uniform development environment. Automation would allow us to apply the setup to as many current or future team mates.
But how did we achieve this?
How to automate software installations
Either use scripts or a tool or both. I recommend you have a look at Boxstarter and also Chocolatey. They offer exactly that. In order to find out whether most of your software is indeed supported, have a look at this list. Or search for it in the upper right corner of the page. In the case of Visual Studio 2015, there is also an XML file to configure the installed options.
Here is a PowerShell 4.0 extract as used in our project:
cinst git --x86 --ignore-checksums Install-ChocolateyVsixPackage -PackageName "VisualStudio.SpellChecker.vsix" -VsixUrl https://github.com/EWSoftware/VSSpellChecker/releases/download/v2016.10.15.0/VisualStudio.SpellChecker.vsix
In the next section let us think about all the benefits.
Benefits
With a scripted software installation you will also get traceability without the additional documentation effort. Plus you will also get the most current versions of the programs being installed. Hence, this also furthers maintainability. Once written, the script can be applied any number of time. So it also offers reusability.
Don’t forget the necessary effort to provide support for new team members. This is during and also after setup. A scripted setup provides each developer with a consistent set of tools. Portability will also benefit. Other development teams within the company likely have similar setup needs. In this way, the initial effort can be reused quite easily. Finally, Boxstarter using Chocolatey can also be directly invoked via an URL. And you can also use it for (re-)installing your virtual environments. This is all the flexibility it offers.
I hope this blog has succeeded in providing you a means for how and why to automate software installations.