Programação Extrema (XP) é um desenvolvimento ágil de softwareframework projetado para gerar software de maior qualidade e melhorar a qualidade de vida da equipe. O XP é o framework ágil mais específico quando se trata de práticas de engenharia adequadaspráticas de engenharia.
Scrumé um framework onde pessoas podem resolver problemas complexos e adaptativos ao mesmo tempo em que entregam produtos de alto valor de forma eficiente e criativa. O próprio Scrum é um framework simples que permite a colaboração eficaz da equipe em produtos complexos.
Tanto o Scrum quanto o XP são metodologias ágeis, compartilhando conceitos comuns como desenvolvimento iterativo, software funcional, lançamentos e planejamento de iterações,reuniões diárias de status, retrospectivas e todos os outros elementos do processo ágil. Esses dois métodos são tão consistentes que pode ser difícil distinguir entre uma equipe que pratica XP e outra que pratica Scrum.

Programação Extrema

Ciclo de Sprint
No entanto, existem algumas diferenças, algumas das quais são bastante sutis, especialmente nos seguintes quatro aspectos:
- Normalmente de duas a quatro semanas.
- Normalmente de uma a duas semanas.
- Não permite alterações em seussprint.
- Assim que oplanejamento do sprint for completo e um conjunto debacklog do produtoitens for comprometido, esses itens permanecem inalterados até o final do sprint.
- Mais fácil de mudar durante a iteração.
- Desde que um recurso específico ainda não tenha sido iniciado, um novo recurso de tamanho semelhante pode ser trocado pelo que não foi iniciado na iteração da equipe XP.
- Trabalhe em ordem estrita de prioridade.
- Os recursos a serem desenvolvidos são priorizados pelo cliente (do Scrum)Product Owner), e a equipe deve tratá-los em sequência.
- O Product Owner do Scrum prioriza o backlog do produto, mas a equipe determina a ordem em que desenvolve os itens do backlog.
- Uma equipe Scrumpode muito bem escolher trabalhar no segundo item mais importante.
- Não prescreve nenhuma prática específica de engenharia.
- Sim, o XP faz.
- Por exemplo: TDD, programação em pares, design simples, refatoração, etc.
Podemos resumir as diferenças entre XP e Scrum da seguinte forma:
| Aspecto | Prática | XP | Scrum |
| Duração da iteração | Se os requisitos podem ser alterados durante a iteração | 1–2 semanas | 2–4 semanas |
| Gestão de mudanças durante a iteração | Se os Requisitos São Estritamente Ordenados pela Prioridade | Pode ser substituído por outro requisito de tamanho igual se ainda não implementado. | Scrum não permite isso. Nenhuma mudança é permitida após o início do sprint, e o Mestre do Scrum impõe isso rigorosamente. |
| Priorização de Recursos | Se os Requisitos São Estritamente Ordenados pela Prioridade | Sim | Não necessário |
| Práticas de Engenharia | Se Métodos de Engenharia Rígidos São Usados para Garantir Progresso ou Qualidade | Muito rigoroso | Exige que os desenvolvedores sejam conscientes |
Portanto, acreditamos que a abordagem do XP é aceitável, mas introduz um paradoxo no Agile: combinar a filosofia do XP com os princípios do Agile envia uma mensagem confusa para as equipes: “Você é uma organização totalmente autogerenciada, mas deve implementar TDD, Programação em Dupla, etc.”
É claro que essas quatro diferenças são bastante distintas:
- Em Scrum, o foco está na auto-organização.
- Em XP, o foco está nas restrições rígidas de práticas de engenharia.
Conclusão
Scrum é um framework de desenvolvimento de produtos — um recipiente para o qual outras práticas podem ser adicionadas. O XP é uma das práticas que você pode aplicar dentro do framework Scrum. Não há motivo para uma equipe escolher entre Scrum e XP. As regras e práticas do XP não são fáceis, e a maioria delas é irredutível. Incorporar o XP ao Scrum pode ser uma evolução natural para uma equipe que começa com Scrum e busca se tornar uma equipe Scrum profissional.