Negocio

Benefícios da integração contínua Agile

Maior Eficiência

Tanya tem pressionado suas equipes de projeto para mudar de uma metodologia tradicional para o Agile. O Agile divide o trabalho do projeto e o cronograma para que resultados tangíveis sejam produzidos em intervalos mais curtos.

Sua equipe está intrigada com a abordagem, mas não tem certeza de como ela pode ser usada de forma eficaz quando o trabalho do projeto usa código compartilhado. Eles estão preocupados com a ocorrência de defeitos e retrabalho. Tanya acredita que a solução é a integração contínua, onde podem maximizar os benefícios e minimizar o risco.

Por que integração contínua?

A integração contínua é uma abordagem para mover o código de um ambiente de desenvolvimento para um ambiente de teste que envolve pequenas quantidades e intervalos frequentes. Depois que os desenvolvedores criam um novo código ou alteram o código existente, eles devem adicioná-lo ao código-fonte existente.

Deve haver uma única fonte (ou versão) que é testada e atualizada com cada integração. Isso é feito de forma mais eficaz por meio da automação, tanto para integração de código quanto para teste.

O Agile não pode ser totalmente implementado sem integração contínua. Os intervalos curtos e repetidos em que o cronograma do projeto é dividido não podem ser alcançados a menos que todos os aspectos do projeto ocorram em intervalos curtos e frequentes. Isso inclui a integração do código ao ambiente de teste.

Além disso, a integração contínua ajuda a atingir alguns dos objetivos do Agile, como ser responsivo às mudanças, criando colaboração entre os membros da equipe e com os clientes e produzindo software funcional.

Benefícios

A integração contínua ajuda a habilitar o Agile e seus objetivos, mas também oferece outros benefícios. Esses benefícios existem principalmente para a equipe do projeto, mas podem ser para qualquer pessoa envolvida em um projeto. Tanya acredita que ajudará a construir suporte com sua equipe e além. Ela agrupa os benefícios com base no estado do trabalho do projeto, em andamento ou concluído.

Trabalho em progresso

Os benefícios que vêm da integração contínua para o trabalho em andamento são particularmente significativos para desenvolvedores e testadores. Em um nível superior, os benefícios envolvem lidar com bugs ou defeitos e produtividade. Cada uma dessas áreas é importante para as equipes de desenvolvimento, o que ajudará Tanya a defender sua posição.

Por meio da integração contínua, os problemas podem ser identificados e resolvidos rapidamente. Sempre haverá bugs e defeitos. Quanto mais longos os períodos de tempo entre as integrações, mais bugs existem e mais difícil é identificar os problemas específicos.

Idealmente, linhas únicas de código seriam integradas a um código mestre controlado assim que fosse criado para confirmar se algum problema foi introduzido ou não. Se houver algum problema, ele pode ser atribuído ao novo código. Essa abordagem não é realista, mas essa é a ideia. Limitar as possíveis causas de bugs trabalhando e verificando pequenas quantidades de código em intervalos frequentes é a própria definição de integração contínua.

Além de encontrar e corrigir bugs mais rapidamente, o próprio processo de integração acontece mais rapidamente. A integração contínua deve ser um processo automatizado que ocorre em intervalos regulares. Dessa forma, as equipes não precisam perder tempo determinando quando seria melhor integrar, nem precisam dedicar tempo para concluir a tarefa manualmente.

O tempo economizado com esses dois processos permite que a equipe se concentre mais na criação de um novo software. O aumento da produtividade é positivo para a equipe e também para a gestão.

Trabalho Concluído

Os benefícios do trabalho concluído que resultam da integração contínua são para todas as partes interessadas do projeto, não apenas para a equipe do projeto. Esses benefícios incluem:

  • o estado geral do ambiente de teste
  • a capacidade de implantar o código do ambiente de teste na produção

Tanya está esperançosa de que, como o impacto positivo tem um grande alcance, receberá o apoio geral da empresa.

A integração contínua cria um ambiente de teste estável e mais utilizável. Deve haver um número mínimo de bugs ou defeitos e o código deve estar relativamente atualizado. Como os bugs são identificados rapidamente e por meio da automação, há pouca chance de que existam problemas que ainda não foram identificados.

Além disso, não deve haver grandes quantidades de código que os desenvolvedores tenham em seus próprios sistemas que não foram integrados. O ambiente de teste pode ser confiável, o que permite que as partes interessadas revisem os itens e forneçam feedback que sabem ser válido.

Quando o ambiente de teste está em boas condições, o código pode ser movido do ambiente de teste para a produção sem muita preocupação com o impacto. O código é então verificado com frequência. Isso leva diretamente à implantação contínua , em que o código passa do ambiente de teste para a produção, enquanto a integração contínua lida com o código em desenvolvimento para o ambiente de teste.

A integração contínua é como tentar organizar uma escola cheia de crianças em seus vários ônibus. Primeiro reúna as crianças para o primeiro ônibus, colocando-as uma por uma para ter certeza de que não há nenhum passageiro clandestino, depois entre no ônibus e verifique novamente. Assim que tiver certeza de que todos estão atendidos, você pode mandá-los embora em implantação contínua, onde em cada casa os pais verificarão se a criança certa chegou.

O objetivo é que o código passe para a produção de modo que o software funcional esteja disponível para os clientes. Isso gera retorno para quem investiu no projeto e também permite que os usuários finais experimentem e forneçam feedback. Quanto mais frequente ou contínua a implantação, melhor.

Resumo da lição

A integração contínua no Agile move o código de um ambiente de desenvolvimento para um ambiente de teste em pequenas e frequentes quantidades. É mais eficaz e benéfico quando a integração e o teste são automatizados.

Os benefícios existem para a equipe de desenvolvimento e a equipe do projeto como um todo e são aplicáveis ​​ao trabalho em andamento, bem como ao trabalho concluído.

  • Trabalho em progresso

    • Os problemas podem ser identificados e resolvidos rapidamente
    • A integração automatizada libera os membros da equipe para se concentrarem em novos códigos e softwares
  • Trabalho concluído

    • O projeto está disponível em um ambiente de teste estável e utilizável
    • A estabilidade leva à implantação contínua – o código pode ser movido do ambiente de teste para a produção sem muita preocupação com o impacto