Repeatability is a intuitive aspect of daily life. If you throw a ball up, it must come down. If you throw it twenty times, the same thing will happen, up and then down. When repeatability doesn’t occur we get anxious.
Repeatability is equally an essential quality in software engineering and when it doesn’t happen, engineers get anxious. One aspect where repeatability is necessary is during the build process. For a build to be considered successful the correct source code needs to be used and the corresponding binaries need to be compiled and linked. And this needs to be repeatable. The same code needs to be fetched from the source code control system and the same compilers and libraries need to be used to build the software. If any of these variables change, the resulting software is different and the process isn’t repeatable.
To help guarantee repeatability, build automation needs to be used. Using scripts and other build tools, the source code is fetched, the build environment is configured and the build process is executed automatically. By relying on an automated process rather than using a manual method this process becomes repeatable.
The setup needed to build basic software packages are simple, a Makefile and maybe a few scripts and everything is set. But this automated build process can become more complicated very quickly.
First, the complexity of the software being built will increase over time and as things like cross platform support are added, the build process becomes more complex. Now the build process needs scripts and tools on each platform to build the platform specific software, but yet from the same source repositories.
Secondly, adding automation beyond simple building, for example by adding automated testing and deployment, increases the complexity of the build system.
To solve these two problems (and a few more), a dedicated automatic build system needs to be used. There are a variety of such tools available including ElectricCommander.
ElectricCommander is a web-based build automation system which manages the build, test and release process. It is scalable, meaning it can keep pace with the complexity of your project and build requirements.
By using ElectricCommander, valuable project time can be saved as engineers no longer have to waste time on maintaining in-house build scripts that are error prone and don’t scale well.
There is also the added bonus of build metrics which are automatically produced by ElectricCommander. These metrics can be used as input to build reports and executive summaries for the project manager.
By uniting previously disconnected and disjointed systems, ElectricCommander ensures release predictability which in turn improves a project’s time-to-market.