IT automation is the process of creating software and systems to replace repeatable processes and reduce manual intervention. With IT automation, software is used to set up and repeat instructions, processes, or policies that save time and free up IT staff for more strategic work.
The automated application development process is characterised by the following characteristics:
- A single common code repository is put in place. All developers place the code they write in the repository. Currently, Git is the most popular version control system. The code in the repository is the sole source of software in the project. There are no additional scripts, programs or other code sent by e-mail or distributed in the company in any other way.
- There is the so-called “build process” in place. The build process is a standardised method for creating and building subsequent software copies. Every developer, tester, testing script and mechanism uses the exact same process for obtaining the current version of the software.
- The build process is automated. Obtaining the current version of the software does not require anybody to perform a large number of manual actions. In an ideal situation, the build process is another script or a piece of software, which is also versioned in the code repository. A developer downloads the latest code from the repository starts the build process (for example by starting a script) and obtains the current state of the application. The same script should be used by all the testing tools and testing environments, as well as for building demo versions.
- The build process is fast. Building the software package does not last too long. This allows for testing results and implementing fixes multiple times.
- The team commits changes often, every day or several times per day at best. The working code is pushed to the master branch in the version control system on an ongoing basis.
- The testing environment should resemble the production environment as closely as possible. In an ideal situation, it would be a direct copy of a production environment.
- The process of pushing software to production is automated. In a best-case scenario, pushing new changes to production should be done by clicking a single button or running a single script.
By achieving all the goals listed above, you gain many benefits that make the application development process more ordered.
- You can quickly rebuild development environments. One of the biggest problems with projects with bad automation is the constant discrepancies between how the software works and runs in production, compared to development and testing environments. Due to the fact that the changes between environments need to be replicated by hand, it’s either done rarely or not at all. Each and every environment has some specific quirks, and if there are many of them, this problem just gets exacerbated further. Thus, the risk that the code or a configuration created in one environment will work differently in another one becomes high. Automated quick environment rebuilds eliminate this problem altogether.
- There is only one source of truth about the current state of the project: The Build. Building the software gives you a true image of what the code looks like and how it works.
- You can build and test an application, its deployment in the testing environment until you get the desired effect and a guarantee that the deployment will go exactly as predicted and that it will have predictable results.