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:

  1. O gestor (Scrum Master) do projeto cria uma lista de prioridades chamada ‘product backlog’;
  2. 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;
  3. 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);
  4. Ao longo do caminho, o Scrum Master mantém a equipe focada em seu objetivo;
  5. No final do sprint, o trabalho deve ser potencialmente utilizável: pronto para entregar a um cliente (mostrar a uma das partes interessadas).
  6. Ao final é feita uma revisão do sprint e retrospectiva;
  7. 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”.

Guia das Ferramentas DevOps

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.

— Leia também: DevOps ou TI Bimodal, o que vem primeiro?

Quer ficar por dentro das nossas publicações e interagir conosco? Curta nossa página no Facebook!

2018-02-07T12:29:43+00:002 Comments