The software we write automates processes and tasks which would otherwise be manual and boring. But how much automation can be used in code writing?
Already in 1999, the book “The Pragmatic Programmer” answered: “a lot”. And together with Agile methodology, the automation practices in software construcion have spread, becoming increasingly important standard part in the development process.
In Aton we use a Continuous Integration server which, without any manual intervention, watches over the various projects’ applicative sources. As soon as a developer delivers a new code modification, it detects it and performs the verification and construction sequences characteristic of the project. Automatic tests, which control the smallest details of the code functioning, are carried out to guarantee their satisfaction; the necessary steps to obtain an executable package from the source code are taken in the correct order; intermediate results are published in Aton’s private archives so that common components can be shared among all projects and, in some advanced ones, the code meters are analyzed to obtain quality scores which must be kept constant or, rather, continually improved.
Should any hitch occur in this sequence, the server notes down the issue and warns the author, who is invited to solve the question asap to guarantee the project’s good health. And all this without any need from the developer’s side to remember to take any action or re-read the project construction guide: the computer is great at carefully performing boring tasks, quite opposite from us: and guaranteeing that the software is always built in the same well-defined way is boring and full of occasions on which a human can commit little manual errors.
By this method, software innovation becomes circular, not needing any manual “push”: from the author to colleagues and collaborators, and from the team towards customers, targeting at producing value in the quickest possible way.