Baixe o app para aproveitar ainda mais
Prévia do material em texto
Qual a diferença entre Extreme Programming, Scrum e DevOps? Num ambiente de desenvolvimento de softwares, chamamos de desenvolvimento ágil toda e qualquer metodologia ( XP, Scrum e DevOps etc.) utilizada no processo criativo que antecipe a necessidade de flexibilidade e na qual seja aplicado um certo nível de pragmatismo para as entregas de produtos finalizados. Utilizar metodologias ágeis, portanto, é manter um código simples, que seja testado muitas vezes e que permitam fazer entregas de porções funcionais da solução. Ou seja, neste processo são construídas as aplicações em cima de pequenas peças que são aprovadas pelo cliente durante o decorrer do projeto, ao invés de fazer uma entrega grande no final. No artigo de hoje você verá qual a diferença entre as principais metodologias ágeis de desenvolvimento: Extreme Programming (XP), Scrum e DevOps. Acompanhe! Metodologias ágeis de desenvolvimento de software tornam a equipe mais produtiva Antes de entrarmos propriamente nas diferenças entre essas três metodologias, devemos relembrar o quanto o conceito de desenvolvimento ágil pode beneficiar a produção de uma equipe de desenvolvedores. O próprio nome já diz: agilidade. Uma das principais vantagens que se busca ao adotar um método ágil é tornar a equipe mais produtiva e assertiva, ou seja, diminuir os erros (tanto técnicos quanto das expectativas do cliente) e entregar nos prazos planejados. As equipes se tornam mais produtivas e assertivas, pois as metodologias ágeis proporcionam: Engajamento de todos os interessados O cliente é envolvido em todas as etapas do projeto e sua visão é levada em consideração. Os stakeholders passam a confiar mais nas capacidades dos desenvolvedores e os resultados se tornam mais “palpáveis”. Aumento da colaboração Como os profissionais se reúnem periodicamente para discutir o projeto, a colaboração entre eles aumenta e isso ajuda a evitar atrasos, erros e retrabalhos. Mais transparência Como os clientes e os desenvolvedores acompanham tudo que está sendo feito, o trabalho se torna mais transparente. Com mais transparência fica mais fácil agir e ajudar os colegas a superarem suas dificuldades, o que potencializa a produtividade. Entregas mais rápidas Como são entregues pacotes em datas pré definidas, evita-se muito os atrasos. Ao perceber que não dará conta de uma demanda, um testador, por exemplo, pode acionar sua liderança para solicitar ajuda com tempo hábil para não furar o cronograma. Diferenças entre XP, Scrum e DevOps Agora sim, vamos às diferenças entre as três principais metodologias ágeis de desenvolvimento de software. Veja: Extreme Programming (XP) O nome Extreme Programming é proposital para demonstrar radicalidade. No entanto, trata-se de uma disciplina de desenvolvimento de software com base em valores de simplicidade, comunicação, feedback, coragem e respeito. Ela funciona trazendo toda a equipe em conjunto para práticas simples, com feedback suficiente para permitir que todos os membros possam acompanhar o desenvolvimento do projeto, tenham uma visão única. Nesta metodologia, todos usam um formulário simples de planejamento e de monitoramento para decidir o que deve ser feito em seguida e para prever quando o projeto será feito. Focada em valores do negócio, a equipe produz o software em uma série de pequenos lançamentos totalmente integrados sempre com o cliente como foco. Os programadores escrevem todo o código de produção em pares, e todos trabalham juntos para que este código tenha um estilo a ser compreendido por toda a equipe — uma padronização para facilitar a leitura e intervenção quando necessário. De tempos em tempos os membros da equipe se reúnem com o cliente para testar os pacotes finalizados. Scrum O mais popular dos métodos de desenvolvimento ágil, Scrum é um processo de gestão e controle que corta a complexidade para focar na construção de software que atenda às necessidades do negócio em questão. A equipe de desenvolvimento, com Scrum, é capaz de entregar as aplicações de acordo com as exigências e em pleno funcionamento, de forma incremental e empirica. Scrum também é uma estrutura simples para colaboração da equipe em projetos de desenvolvimento de software complexos. Num projeto de desenvolvimento onde o Scrum seja utilizado, temos basicamente o seguinte esquema: O gestor (Scrum Master) do projeto cria uma lista de prioridades chamada ‘product backlog’; Durante o planejamento de sprint a equipe puxa um pequeno pedaço do topo da lista de prioridade, um ‘backlog de sprint’, e decide como implementar essas peças; A equipe tem uma certa quantidade de tempo — um sprint (geralmente duas a quatro semanas) — para completar o seu trabalho, mas todos os dias o progresso é avaliado (Scrum diário); Ao longo do caminho, o Scrum Master mantém a equipe focada em seu objetivo; No final do sprint, o trabalho deve ser potencialmente utilizável: pronto para entregar a um cliente (mostrar a uma das partes interessadas). Ao final é feita uma revisão do sprint e retrospectiva; Como o próximo sprint começa, a equipe escolhe um outro pedaço do product backlog e começa a trabalhar novamente. DevOps DevOps é um termo relativamente novo que emerge da colisão de duas grandes tendências relacionadas. A primeira também foi chamado de “administração ágil de sistema” ou “operações ágeis”; que saltou de aplicar novas abordagens ágeis e enxutas para operações de trabalho. A segunda é uma compreensão ampliada muito do valor da colaboração entre o desenvolvimento e a equipe de operações em todas as fases do ciclo de desenvolvimento na criação e operação de um serviço, e como operações tornou-se importante no nosso mundo cada vez mais orientado a serviços. Uma definição de Jez Humble é que DevOps é “uma comunidade multi-disciplinar de prática dedicada ao estudo da construção, evolução e funcionamento rapido na construção ou mudança de sistemas resilientes em escala.” Também podemos definir DevOps basicamente como “a prática de operações e engenheiros de desenvolvimento que participam juntos no ciclo de vida de serviço completo, desde o projeto até o processo de desenvolvimento para apoio à produção”. Captou a diferença entre XP, Scrum e DevOps? Enquanto XP e Scrum estão mais focados nas entregas em si, com agilidade e assertividade, DevOps vai além e propõe a integração entre a área de desenvolvimento de software com a operação da infra de TI. Com DevOps, derruba-se as “barreiras” que existem entre estas duas (ou mais) equipes.
Compartilhar