O que é Continuous Integration?
A ansiedade da área de negócio e o detalhismo da área de TI geram frequentemente o conflito entre as áreas. Uma, espera o máximo de qualidade no menor custo, e principalmente com o menor prazo, e a outra sempre necessita de mais tempo para melhorar o produto final.
O continuous integration propõe trazer paz para as áreas, proporcionando mais tempo para os desenvolvedores capricharem em seus produtos, e deixar a área de negócios, menos ansiosa com o recebimento paulatino de suas demandas.
Seu conceito é simples, partindo da premissa de que todo sistema é composto por uma série de requisitos, e esses requisitos por sua vez são transformados em linhas de código, norteados por uma arquitetura de sistemas, que impede qualquer desvio dos programadores, agrupa-se em pacotes, e os distribui para diferentes profissionais codificar.
O passo seguinte é a compilação dos pacotes, testes primários, testes funcionais e a promoção para a produção.
O que aparentemente parece ser simples, tem um enorme desafio na sua implantação, pois, sem ferramentas de controle e testes, pessoas treinadas e um rigoroso processo de validação, dificilmente se conseguirá alcançar um processo continuo de desenvolvimento e implantação de sistemas eficiente.
Aparentemente, os desenvolvedores são colocados em uma “camisa de força”, mas torna-se impossível para as grandes corporações, que necessitam de agilidade e qualidade nos seus sistemas, consegui-los sem um rigoroso cumprimento dos processos de desenvolvimento, pois não se obtém sucesso, principalmente na integração dos sistemas, se cada desenvolvedor tiver autonomia de criar e mudar o que quiser, quando quiser.
Com os pacotes desenvolvidos é hora da realização de testes de infraestrutura, realizados de maneira automatizada, assim é garantido que erros simples não ocorram, ou quando ocorrerem, sejam solucionados mais rapidamente.
Testar funcionalmente pacotes menores e mais automatizados, reduz, para quem tem a obrigação de validar se tudo o que a área de negócio solicitou está sendo atendida, a possibilidade de erros.
E por fim, é momento de colocar os pacotes em produção, diferentemente de fazer um “deploy” de um sistema inteiro, onde é necessária a mobilização de um exército de técnicos e analistas com extensas e caras mudanças, pacotes menores e contínuos facilitam a vida de quem opera o ambiente de produção e garante a continuidade de negócio para quem tem a missão de manter a empresa viva.