Integração Contínua
Criação de um Processo de Build
O desenvolvimento de software, normalmente é formado por conjuntos de procedimentos, sejam no âmbito gerencial do projeto ou no ponto de vista técnico. Seja como for, os procedimentos que não dão bons resultados, são comumente abandonados e trocados por outras abordagens. No entanto, quando um procedimento dá resultados, ele é reutilizado e aprimorado, tornando-se assim uma prática; ou melhor, uma best practice.
Quando alguns visionários divulgam e advogam em favor dessas best practices, acabam criando um processo, que é a reunião de boas práticas em favor do desenvolvimento de software com maior qualidade, consistência e organização.
Sob esse ponto de vista, podemos destacar a Integração Contínua (Continuous Integration), que é um dos pilares fundamentais do Extreme Programming (XP). Como logo veremos, a Integração Contínua tem um papel fundamental no XP, em virtude de que viabiliza e potencializa a utilização de outras práticas propostas pelo XP.
Sem discutir em detalhes, o XP é um processo simples e ágil baseado no contato direto com o usuário final. Os requerimentos são capturados em estórias (user stories) e o software é desenvolvido em pequenas iterações onde essas estórias são escalonadas. O código é escrito seguindo padrões previamente definidos e pode ser escrito por pares de programadores. Adicionalmente, utiliza-se o desenvolvimento dirigido a testes, criando assim um ambiente perfeito para otimização e eliminação de duplicações por meio de Refactoring.
A partir dessa perspectiva, percebe-se que o XP propõe uma infra-estrutura onde o software é desenvolvido em “pedacinhos”, mas no entanto, cada pedacinho é submetido a todas as fases do ciclo de vida do software, da concepção ao teste. Nessa estratégia, cada pedacinho construído em cada iteração é testado pelo usuário, viabilizando assim, a identificação e correção de erros de concepção e programação nas fases iniciais da construção do software (e poupando muito tempo e dinheiro, afinal, quanto mais tarde um erro for detectado, maior será o custo e o tempo para corrigi-lo).
Nesse contexto, a proposta da Integração Contínua é a criação de um ambiente separado e independente do ambiente de desenvolvimento, onde as modificações individuais são unificadas ao projeto principal. O projeto é compilado, os testes são rodados, a documentação é gerada e assim por diante, como pode ser visto na Figura 1.
Figura 1. Integração Contínua em ação
Características
" [...] continue lendo...