Shift Left em DevOps
Geralmente em processos de desenvolvimento de software as atividades de **testes**, **segurança** e **deploy** são deixadas para o final, causando assim gargalos, bloqueios e dificuldades em se finalizar os ciclos de desenvolvimento e entrega de software. **Shift Left** é uma prática que consiste em **deslocar** para a **esquerda** tais atividades, que normalmente estão mais à direita no processo, para que assim desde o **ínicio** de cada ciclo elas possam ser discutidas e planejadas, evitando problemas e acelerando a entrega de software. --- # Transcrição Olá, tudo bem? Meu nome é **Rodrigo Ferreira**, sou um dos instrutores da Alura, da Escola de Programação e DevOps. > **Audiodescrição:** Rodrigo Ferreira é uma pessoa de pele clara, com olhos castanhos e cabelos também castanhos e lisos. Usa uma camiseta cinza lisa. No fiundo, uma luz LED verde ilumina uma parede com redes de gatos. Hoje, aprenderemos sobre ***Shift Left***. Vamos lá? > **Audiodescrição:** Abertura do Alura +. No fundo toca uma música animada. Sobre um fundo azul, as palavras "Mergulhe", "em", "tecnologia" piscam na tela. Depois aparece a logo do Alura+. Quando a abertura termina, a câmera do Rodrigo está no canto inferior esquerdo e, no centro da tela, temos "Shift Left" escrito em azul-claro sob o fundo azul-marinho. ## Metodologias ágeis e o trabalho como dev Talvez esse termo não seja familiar, mas é **muito utilizado** por pessoas que trabalham com **DevOps** e **metodologias ágeis**. Entenderemos melhor o que ele significa e como pode nos ajudar. Se trabalhamos em uma empresa de desenvolvimento de software, é comum fazermos **parte de um time**. Desenvolver software não é apenas escrever código, tornou-se uma tarefa complexa que envolve várias etapas e pessoas. Antigamente, o **modelo Cascata**, uma abordagem comum para organizar o desenvolvimento de software, como podemos observar na imagem a seguir: . Dependendo da empresa e do projeto, pode haver etapas adicionais, como **segurança**, onde são realizados testes para garantir a segurança da aplicação. Em outros casos, pode ser que uma das etapas sejam substituídas ou não realizadas. Mesmo com metodologias ágeis, **ainda precisamos dividir tarefas e perfis**. É comum trabalharmos em times com pessoas em diferentes papéis, como codificadoras e testadoras. ### Desafios da metodologia ágil Esse tipo de ambiente, com separação de atividades, pode levar a **problemas**, mesmo em ambientes ágeis. Um problema comum é a **criação de barreiras** entre responsabilidades e papéis, que ficam com pessoas ou times diferentes, resultando em silos e **isolamento**, ao invés de colaboração. . Por exemplo, pode-se discutir desde o início quais serão os testes aplicados e, dependendo da implementação, como de testes automatizados, também pode ser iniciado. O Mesmo funciona para o *deploy*. Pode-se discutir se será necessária alguma estrutura, como firewall ou servidor, e antecipar alguns processos. Isso significa **planejar e discutir essas etapas desde o início**, evitando problemas e retrabalho. Ao aplicar o Shift Left, promovemos a **colaboração** entre os times, eliminando conflitos e melhorando o planejamento. Isso evita travamentos e sobrecarga nas etapas finais, agilizando a entrega do software e evitando retrabalho. **Vantagens do Shift Left:** * Colaboração entre pessoas/times * Planejamento prévio das etapas de teste, segurança e entrega * Evita travamentos no processo de desenvolvimento * Agiliza a entrega do software * Evita retrabalho Essas são as vantagens de utilizar a prática do Shift Left. Se ainda não a utilizam, esperamos que esse conhecimento seja útil no seu dia a dia. Podemos aplicar essa ideia em times e empresas que estejam sofrendo com esses problemas de gargalos, retrabalhos e travamentos, deslocando as últimas etapas para a esquerda, **promovendo planejamento e colaboração**. Nos vemos em outros cursos e conteúdos da Alura. Obrigado por assistir. Um abraço!