Alura+ são pequenos vídeos com conteúdo complementar aos cursos da Alura. Aqui você tem novidades, dicas, tutoriais, novos assuntos e muito mais. Excelente para aprender algo novo naqueles pequenos momentos que sobram no dia.
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.
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.
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:
Era uma abordagem comum para organizar o desenvolvimento de software. Esse modelo incluía etapas como:
Com o deploy, a aplicação era liberada para o acesso das pessoas usuárias terem acesso. Entretanto, esse processo tinha problemas, percebidos ao longo dos anos.
Por isso, com o tempo, surgiram novas abordagens, como o manifesto ágil e as metodologias ágeis, amplamente utilizadas hoje. No entanto, mesmo com metodologias ágeis, como o Scrum, ainda precisamos realizar atividades do modelo cascata, mas aconteciam durante as sprints (ciclos de desenvolvimento).
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.
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.
Isso pode causar problemas, especialmente nas últimas etapas do processo, como testes e deploy. Um dos problemas é a espera. As etapas finais, como deploy, só são executadas no final, deixando as pessoas responsáveis por essas etapas ociosas.
Outro problema é o travamento, porque as atividades são realizadas em ciclos. As pessoas responsáveis pelas últimas tarefas vão receber o projeito no final do ciclo, resultando em sobrecarga de trabalho e atrito entre as pessoas. As pessoas do final do processo precisam fazer horas extras para conseguir cumprir sua etapa antes do final do ciclo para entregarem sua parte, ampliando as chances de tensão entre os times do final do processo com os times do começo.
Problemas
- Espera
- Gargalo
- Sobrecarga de trabalho
- Atrito entre as pessoas/times
Consequentemente, esses problemas podem gerar conflitos entre times, e eu trouxe uma imagem engraçada que representa essa situação, como um cachorro e um gato brigando:
Isso costuma acontecer com os times de desenvolvimento e operações, mas pode acontecer com outros times também, como programação e testes. A considerada demora da entregam o que pode levar a discussões e brigas, criando mais barreiras entre os times.
Se identificamos essa situação em nossa empresa, onde as pessoas do final do processo estão sobrecarregadas, podemos minimizar esses problemas com o conceito de Shift Left. O termo "Shift" pode lembrar a tecla de mesmo nome, mas não se trata disso, e sim de um conceito.
A ideia é deslocar as últimas etapas do processo, como testes, segurança e deploy, para a esquerda, ou seja, para o início do processo. Por isso "Shift Left" (Deslocar para esquerda).
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:
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!
15min para conclusão
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.