PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines - Fonseca, Nelson Ricardo Matos (2019)
The complexity of the product developed makes its validation processes too complex, namely build pipelines. This complexity of build pipelines, coupled with the lack of knowledge in different teams about their manipulation, means that teams cannot be fully independent. This independence makes one team responsible for maintaining build pipelines. The lack of independence on the teams means that they can not develop their components from end to end, which can lead to a delay in development if the team responsible for maintaining pipelines cannot fulfill all requests in a short time. Since the software market is a competitive market, it is necessary to eliminate all sources of delays, or possible delays, in order to deliver value to customers quickly and frequently. With this, it is necessary to find a solution that allows different people from different areas and teams to handle build pipelines, in a simple and fast way, with practically no context about the concepts, terms, and configurations of build pipelines. In this work, a DSL is presented with a simple understanding syntax that abstracts some concepts related to build pipelines, which allows to create build pipelines logic and to program the automation logic in the same language, and it also allows having code reuse. This solution is based on two solutions already implemented in the industry and that has been successful: the use of a DSL; and the existence of libraries of build pipelines. The design, implementation, and validation were done in the industrial context of OutSystems. This allowed the validation of the prototype in a real scenario, making a comparison between the use of the prototype and the form of development of current build pipelines in the context of this company. The results obtained show evidence that in overall, productivity increases with the use of DSL.