Entre em contato

Enviar Mensagem

Postado por: Elison de Campos

Integração Contínua
O valor da integração contínua 3/4

Continuando nossa série de artigos sobre os benefícios da utilização de integração continua no ambiente de desenvolvimento, veremos como ela melhora a visibilidade do projeto e estabelece uma maior confiança no produto sendo entregue ao cliente.

Melhorando a visibilidade do projeto através do CI

Integração continua provê a habilidade de identificar tendências e tomar decisões mais eficazes, ajudando a prover a coragem para inovar nas melhorias. A maioria dos projetos sofre quando não existem dados reais ou recentes para embasar decisões, então todos se baseiam no bom senso. Tipicamente, membro dos projetos coletam essas informações manualmente, tornando o processo cansativo e demorado. O resultado é que a informação, muitas vezes, nunca realmente é obtida.

Ao utilizar a integração continua, os benefícios na visibilidade do projeto permitem:

  • Decisões eficazes: Um sistema de integração continua pode prover dados em tempo real da build mais atual, contendo seu status e suas métricas de qualidade. Alguns sistemas de integração ainda podem mostrar taxas de erro e conclusão de funcionalidades.
  • Identificar tendências: Uma vez que integrações ocorrem freqüentemente em um sistema de integração, a habilidade de identificar tendências no sucesso ou falha de uma build, alteração na qualidade da aplicação e outras informações rotineiras se torna possível.

Aumentando a confiança do produto através da integração continua

Em resumo, a aplicação de práticas de CI podem aumentar a confiança na produção de um software. A cada nova build, a equipe sabe que testes são executados para verificar comportamento da aplicação, que padrões de design e programação são alcançados e que o resultado é uma solução comprovada.

Sem integrações frequentes, algumas equipes podem se sentir sufocados, uma vez que eles não sabem quais os impactos que uma modificação no código pode causar. Uma vez que um sistema de CI avisa quando alguma coisa dá errado, membros da equipe de desenvolvimento ficam mais tranquilos em realizar modificações. A utilização de um sistema de integração continua encoraja uma base primária onde todos os recursos do software são construídos. Existe uma maior confiança na acuracidade da solução sendo desenvolvida.

Com tantos beneficios em sua utilização, o que previne então, que equipes utilizem práticas de integração continua no desenvolvimento de suas aplicações? Freqüentemente, é uma combinação de fatores, os quais veremos na ultima parte de nossa série sobre o valor da integração continua. Fique ligado!

Integração Contínua
O valor da integração contínua 2/4

No ultimo post vimos como a utilização de práticas da integração contínua pode reduzir os riscos do desenvolvimento de uma aplicação. Continuando esta série sobre o valor do CI iremos ver como sua utilização nos ajuda a reduzir os processos repetitivos e nos garante um software sempre pronto para o deploy.

Integração contínua reduz processos repetitivos

Reduzir processos que sejam repetitivos, em todas as áreas de um projeto, como compilação de código, integração do banco de dados, testes, inspeções, deploy e feedback. Automatizando seus processos através do uso do CI, é adquirido uma maior habilidade em certificar que:

  1. Os processos serão executados sempre da mesma forma.
  2. Os processos serão sequenciais. Por exemplo, você pode executar suas inspeções (análise estáticas) antes que você execute seus testes.
  3. Os processos irão ser executados cada vez que um novo commit é apresentado ao controlador de versões.

Isto facilita:

  1. Redução do trabalho manual em processos repetitivos, liberando os contribuidores para executar trabalhos de maior valor.
  2. Capacidade de superar resistência (por parte de outros membros do time) para implementar melhorias ao utilizar mecanismos automatizados para processos importantes como testes e integrações ao banco de dados.

Integração contínua gera software consistente para deploy

Permitindo que você gera uma versão pronta para o deploy a qualquer hora, é por um lado, o beneficio mais óbvio de utilizar a integração contínua. Poderíamos falar horas e horas sobre o aumento na qualidade e riscos reduzidos mas ter uma aplicação sempre pronta para ir ao ar é o beneficio mais tangível aos clientes e usuários. A importância disto não pode ser sobrestimada. Com o CI, você pode realizar pequenas mudanças com frequência e integrar estas alterações com o resto do código regularmente.

Se existirem problemas, os membros do projeto serão informados e as correções serão aplicadas ao projeto imediatamente. Projetos que não adotam desta prática correm o risco de esperar até a entrega da solução para integrar e testar o software. Isto pode gerar um atraso, atrasar ou prevenir a correção de certos defeitos, causar novos defeitos enquanto você corre para concluir as correções e pode, em ultima instância, decretar o fim do projeto.

No próximo artigo, veremos como a utilização do CI melhora a visibilidade do projeto e estabelece uma maior confiança na qualidade do produto sendo desenvolvido. Até lá!

Integração Contínua
O valor da integração contínua 1/4

Um grande ambiente de desenvolvimento irá beneficiar tornando seus grandes desenvolvedores em excelentes desenvolvedores. Um ambiente ruim de desenvolvimento irá tomar a produtividade de seus desenvolvedores tornando-os ineficazes.

É especialmente importante para que cada time, e especialmente, os lideres desses times tenham seu ambiente de desenvolvimento em ordem. Para tal, duas grandes praticas têm ganho grande atenção nos últimos anos. Estamos falando do deploy continuo e da integração continua.

Nesta série de artigos, focando na integração continua, iremos procurar demonstrar as razões que fizeram a Zaez aplicar este conceito em todas suas aplicações, para assegurar a maior disponibilidade dos serviços para nossos clientes.

Os benefícios para a integração continua são:

  1. Reduzir riscos
  2. Reduzir processos manuais repetitivos
  3. Gerar sistemas que possam ser lançados a qualquer hora e lugar
  4. Melhorar visibilidade do projeto
  5. Estabelecer uma maior confiança no produto por parte do time de desenvolvimento

A primeira parte desta série procurar demonstrar como a integração continua pode reduzir a quantidade de riscos não somente durante o desenvolvimento, mas garantir que a versão em produção do sistema seja sempre estável.

Integração contínua reduz riscos

Ao integrar diversas vezes ao dia, é possível reduzir os riscos no projeto uma vez que facilita a detecção de defeitos, mede a saúde do projeto e reduz a necessidade de suposições

  • Defeitos são detectados e corrigidos mais cedo: Uma vez que a integração continua executa testes e inspeções várias vezes no mesmo dia, há uma grande chance que defeitos serão descobertos quando eles são adicionados (ex: quando o código é checado no repositório para controle de versão) ao invés de um teste no final do dia.
  • A saúde do sistema pode ser medida:  Ao incorporar testes contínuos e inspeções no processo automatizado de integração, os atributos referentes a saúde da aplicação, tais como complexidade e cobertura do código podem ser rastreados através do tempo
  • Reduzir suposições: Ao reconstruir e testar a aplicação em um ambiente limpo, utilizando as mesmas rotinas em uma base continua, você consegue reduzir suposições (exemplo: se você possuir bibliotecas de terceiros ou variáveis de ambiente)

Ao utilizar dos conceitos que a prática de integração continua introduz no ambiente de desenvolvimento, adquirimos uma rede de segurança que detecta erros que estão sendo introduzidos na base de código. Aqui na Zaez, através do uso de CI, conseguimos diminuir a ocorrência dos seguintes erros:

  1. Falta de software coeso, não lançável.
  2. Descoberta atrasada de defeitos
  3. Aplicações de baixa qualidade
  4. Baixa visibilidade do projeto

No próximo artigo desta série, irei abordar como a utilização da integração continua ajudou a diminuir a repetição de processos manuais através das aplicações, tais como compilação do código, integração do banco de dados, testes, entre outros.


Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'addcopy' not found or invalid function name in /home/zaez/public_html/wp-includes/plugin.php on line 503