Repository logo
 
No Thumbnail Available
Publication

PACE: Domain-Specific Language to Enable Developers Autonomy in Dealing with Complex Build Pipelines

Use this identifier to reference this record.
Name:Description:Size:Format: 
7029_14914.pdf2.2 MBAdobe PDF Download

Abstract(s)

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.
A complexidade do software faz com que os seus processos de validação também eles sejam complexos, nomeadamente os build pipelines. Esta complexidade dos build pipelines, associada com a falta de conhecimento existente nas diferentes equipas sobre a sua manipulação, faz com que as equipas não consigam ser totalmente independentes. Esta independência faz com que exista uma equipa responsável pela manutenção de build pipelines. A falta de independência das equipas leva a que elas não consigam desenvolver os seus componentes de ponta a ponta, o que poderá levar a um atraso no desenvolvimento se a equipa responsável pela manutenção de build pipelines não conseguir satisfazer todos os pedidos em pouco tempo. Uma vez que o mercado de software é um mercado competitivo, é preciso eliminar todas as fontes de atrasos, ou de possíveis atrasos, para que se consiga entregar valor aos clientes de forma rápida e frequente. Com isto, é necessário encontrar uma solução que permita que diferentes pessoas de diferentes áreas e equipas possam manipular build pipelines, de uma forma simples e rápida, sem possuírem praticamente nenhum contexto sobre os conceitos, termos, e configurações de build pipelines. Neste trabalho é então apresentada uma Domain Specific Language (DSL) com uma sintaxe de simples compreensão que abstrai alguns conceitos relacionados com build pipelines, que permita criar lógica de build pipelines e programar a lógica de automação tudo na mesma linguagem, e que também permita ter reutilização de código. Esta solução é baseada com duas soluções já implementadas na indústria e que obtiveram sucesso, o uso de uma DSL e a existência de bibliotecas de build pipelines. O desenho, implementação e validação foram feitos no contexto industrial da OutSystems. Isto permitiu validar o protótipo num cenário real, fazendo a comparação entre o uso do protótipo e a forma de desenvolvimento de build pipelines atual no contexto desta empresa. Os resultados obtidos mostram evidências de que no geral a produtividade aumenta com o uso da DSL.

Description

Keywords

Autonomia Build Pipeline Entrega Contínua Integração Contínua Linguagem de Domínio Específico Melhoria da Produtividade Pipeline As Code Redução de Complexidade

Citation

Research Projects

Organizational Units

Journal Issue