Você já ouviu falar em Continuous Delivery? Esse é um conceito simples e muito bem aplicado por uma das maiores empresas de mídia da atualidade, a Netflix, auxiliando a organização a surpreender seus usuários.

Com a transformação digital e surgimento de diversos players no mercado, está cada vez mais difícil destacar-se da concorrência. Neste cenário, a entrega contínua pode ser uma forma de deixar de ser mais um na multidão.

Neste artigo, vamos falar um pouco mais sobre Continuous Delivery, como funciona essa abordagem e quais os benefícios dela para o seu negócio. Além disso, vamos apresentar como a Netflix aplicou o conceito e criou uma nova era voltada á experiência do cliente!

O que é Continuous Delivery?

Por muito tempo, o desenvolvimento de software foi tratado como a construção de um produto tradicional, sendo totalmente projetado e testado antes do lançamento de uma versão final.

Contudo, um software é muito diferente de qualquer outro produto que você possa comprar no mercado, por exemplo. Por conta disso, algumas empresas começaram a observar que talvez o modo como estavam tratando essa entrega final não fosse tão eficiente assim.

Imagine começar a vender um produto antes mesmo de sua versão final e que os usuários que estão utilizando esses serviços já podem enviar seus feedbacks e garantir a melhoria do produto. Essa é a ideia por trás do Continuous Delivery.

O conceito trata de desenvolver produtos de software de forma gradual, realizando entregas constantes que corrijam problemas e insiram funcionalidades, melhorando a experiência dos usuários.

Dentro dessa nova abordagem de desenvolvimento de software, o produto nunca está acabado. Afinal, os usuários sempre têm novas exigências e a empresa deve estar buscando formas de atendê-las continuamente.

Ainda existem dois conceitos técnicos muito semelhantes ao Continuous Delivery. São eles:

  • integração contínua ─ esse termo está ligado à geração e integração de código novo a um programa já existente, porém, integrar não significa entregar;
  • implantação contínua ─ essa ideia vai além do Continuous Delivery e consiste em manter o software sendo atualizado praticamente a todo o momento, sem estipular datas.

Como funciona esse conceito?

O funcionamento do conceito é altamente técnico, mas podemos explicar de forma mais simplificada como se dá cada uma das etapas. O primeiro passo é verificar quais serão as próximas mudanças a serem realizadas no software. Ou seja, definir um escopo.

O tamanho das alterações deve ser limitado para que a velocidade de entrega não fique comprometida. É preciso lembrar que os intervalos entre os lançamentos de novas versões não podem ser longos.

Em seguida, o time de desenvolvimento determina as responsabilidades de cada um dentro do projeto e inicia a codificação das alterações. O código inicial já deve ser preparado para ser modificado de forma simples, além de focar em reutilização.

Após o desenvolvimento, a nova versão do software é liberada primeiro em um ambiente de testes totalmente automatizado. É nesse momento que todas as possibilidades são testadas para verificar a qualidade do código e a necessidade de ajustes.

Após passar por um período de testes, a versão é então liberada ao público juntamente com algum tipo de mensagem que demonstre quais foram os itens alterados e possíveis novas funcionalidades inseridas.

É comum algumas empresas realizarem a divisão entre lançamentos de correção, que visam apenas eliminar bugs e lançamentos de novas features, ou seja, funcionalidades extras.

Quais os seus benefícios?

Investir em entrega contínua no desenvolvimento de software de sua empresa pode ser uma ótima forma de conquistar diversos benefícios. Entre eles, podemos citar:

Velocidade de desenvolvimento

A produtividade de equipes é muito maior quando elas estão focadas em pequenas e médias entregas constantes. Isso acontece porque o tipo de desenvolvimento está focado em partes menores e não em um todo.

Dessa forma, pode-se desenvolver muito mais rápido e garantir a entrega sempre dentro do prazo, o que é um grande diferencial para todos os usuários do software.

Satisfação dos usuários

Em uma abordagem de Continuous Delivery, os erros podem ser corrigidos muito mais rapidamente, o que impacta diretamente na satisfação dos usuários. Além disso, o surgimento de novas funcionalidades a todo instante faz com que eles valorizem mais o seu produto.

Sustentabilidade do negócio

É comum no meio da tecnologia que o mercado evolua rapidamente e softwares que não são adaptados estarem legados ao declínio e esquecimento. Essa rapidez exige que as entregas sejam realizadas o mais rápido possível, o que se encaixa perfeitamente no conceito de Continuous Delivery.

Menor incidência de erros e equívocos

É comum na indústria de software que sistemas sejam lançados com erros ou até mesmo com funcionalidades que não realizam suas funções como deveriam. A entrega contínua preza pela qualidade e a fase de testes é muito importante, diminuindo esse tipo de ocorrência que possa prejudicar a imagem da empresa e a experiência dos usuários.

Como a Netflix aplica esse conceito?

Caso você tenha uma assinatura da Netflix, já deve ter percebido que se a sua internet estiver funcionando, dificilmente o streaming de alguma série ou filme será interrompido.

Além disso, quantas vezes você acessou seu aplicativo e viu alguma notificação sobre sistema em manutenção? Provavelmente nunca, não é mesmo? Como a empresa consegue essa façanha?

A resposta para isso está no conceito de entrega contínua e evolução de sua plataforma, que, mesmo estando disponível para diversos dispositivos como smartphones, videogames, smart TVs, entre outros, praticamente nunca falha.

A empresa sabia da necessidade de manter a qualidade de seu sistema e que isso poderia ser um grande diferencial. Por conta disso, investiu em uma plataforma interna de controle de entrega chamada Spinnaker.

O sistema mantém dois serviços principais, um gerenciamento de clusters, para garantir que sua plataforma de streaming sempre esteja ativa e um gerenciamento de implantação, que envia para produção as novas versões de seu software.

Sendo assim, apenas após todos os testes serem concluído, o gestor de cluster aponta para o novo servidor, garantindo que nada de errado possa ocorrer durante a nova entrega.

Além disso, essa ferramenta interna desenvolvida pela Netflix também permite a rápida regressão caso uma implementação apresente qualquer tipo de problema. Ou seja, é um grande botão de desfazer.

A Continuous Delivery é o futuro do desenvolvimento de software, permitindo que as empresas possam melhorar seus produtos aos poucos e oferecer a melhor experiência possível aos seus usuários. Agora que você conhece suas características e benefícios, pode considerar a implementação dela no seu dia a dia. Aproveite!

Gabriel Mendes

CTO no TD Empreendedor e desenvolvedor há mais de 12 anos, fundador de startups em Minas Gerais e Santa Catarina e, hoje, atua como CTO no TranformacaoDigital.com.

tecnologia-da-informacaoTecnologia da Informação
Transformação Digital As tendências para negócios em 2019
Tecnologia Desvendando o futuro do Blockchain