Entrega Contínua

Tudo que você precisa saber sobre Entrega Contínua de Software – 1 – Introdução

Atualmente um dos grandes problemas enfrentados por profissionais que atuam com desenvolvimento de software é entregar ao cliente o quanto antes o sistema desenvolvido ou alterações e correções necessárias após estar em produção. Neste contexto, foi criado o conceito de entrega contínua que segundo Fowler (2013), é uma disciplina de desenvolvimento de software na qual se constrói o software de maneira que ele possa ser liberado para produção a qualquer momento.

Este conceito vem mudando o processo de desenvolvimento e entrega de software e sendo adotado, cada vez por mais organizações, que além de ter que alterar sua cultura interna também devem utilizar de diversas ferramentas para que o processo fique confiável e automatizado.

A definição dessas ferramentas pode ser um trabalho árduo, pois existem inúmeras opções e é necessário experiência profissional prévia para garantir que o processo seja implementado de maneira correta e de acordo com o exigido pela organização. Diante disso, o objetivo desta série de posts é abordar os conceitos e práticas de entrega contínua e a escolha genérica dessas ferramentas, com foco em open source e multi-linguagem, em um processo padrão que pode ser utilizado em qualquer projeto de software, servindo como referencial para empresas e profissionais.

O principal referencial utilizado foi o livro “Entrega Contínua. Como Entregar Software de Forma Rápida e Confiável” que pode ser adquirido aqui. As demais referências utilizadas e lista de ferramentas utilizadas estão neste link.

Entrega Contínua de Software

 

Segundo Fowler (2013), a entrega contínua às vezes é confundida com a implantação contínua:

A implantação contínua significa que cada mudança passa pelo pipeline e é automaticamente colocada em produção, resultando em muitas implantações em produção todos os dias. A entrega contínua significa que você pode fazer implantações frequentes, mas pode optar por não fazê-lo, geralmente devido às empresas que preferem uma taxa de implantação mais baixa. Para fazer a implantação contínua, você deve estar fazendo entrega contínua. (FOWLER, 2013).

Para o autor, a entrega contínua só é possível integrando continuamente o software:

Você consegue entrega contínua integrando continuamente o software feito pela equipe de desenvolvimento, criando executáveis e executando testes automatizados nesses executáveis para detectar problemas. Além disso, você implanta os executáveis em ambientes cada vez mais similares ao de produção para garantir que o software funcionará na produção (FOWLER, 2013).

Fowler (2013) afirma ainda que a adoção de entrega contínua reduz o risco de problemas na implantação, “uma vez que você está implantando mudanças menores, há menos para dar errado e é mais fácil corrigir se um problema aparecer”.

De acordo com Humble e Farley (2014) há diversos benefícios além da redução de erros. Entre eles, dar autonomia às equipes, reduzir o estresse, oferecer flexibilidade na implantação. “O principal benefício é que ela cria um processo de entrega confiável, previsível e passível de repetição, que, por sua vez, gera grandes reduções no tempo de ciclo e entrega novas funcionalidades e correções aos usuários rapidamente” (HUMBLE; FARLEY, 2014).

Para implantar a entrega contínua, Fowler (2013) afirma que é necessário “uma relação de trabalho estreita e colaborativa entre todos envolvidos na entrega” e “automatização de todas as partes possíveis do processo”.

Assim, é possível verificar a eficácia da implantação de um processo de entrega contínua quando:

Seu software é frequentemente implantado ao longo de seu ciclo de vida; sua equipe prioriza manter o software implantável ao trabalhar em novos recursos; qualquer um pode obter feedback rápido e automatizado sobre seus sistemas sempre que alguém faz uma mudança neles; você pode executar implantações com um clique de um botão de qualquer versão do software para qualquer ambiente(FOWLER, 2013).

Desta forma, a entrega contínua fornece padrões para facilitar e melhorar a qualidade de entrega de software para o cliente.

O próximo post define quais são os pré-requisitos para implantar um processo de entrega contínua. Acesse aqui.

 

Um comentário sobre “Tudo que você precisa saber sobre Entrega Contínua de Software – 1 – Introdução

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s