Entendendo como XP e Scrum diferem, se sobrepõem e trabalham juntos.
XP e Scrum surgiram na mesma época e compartilham as mesmas raízes, mas focam em problemas diferentes.
Scrum foca em gerenciamento de projetos: Como você organiza o trabalho? Quais papéis você precisa? Quais reuniões? Quais artefatos? Scrum oferece uma estrutura para gerenciar o fluxo de trabalho através de uma equipe.
XP foca em práticas de engenharia: Como você realmente escreve o código? Como você garante qualidade? Como você mantém a base de código saudável? XP oferece práticas para fazer o trabalho bem.
É por isso que eles se complementam tão naturalmente. Scrum diz o que construir em um sprint. XP diz como construir.
Apesar de focos diferentes, XP e Scrum compartilham conceitos-chave:
Uma equipe "fazendo Scrum" parece muito com uma equipe "fazendo XP" por fora. A diferença está por baixo do capô.
Scrum é silencioso sobre práticas de engenharia. O Guia do Scrum não diz nada sobre TDD, programação em par, refatoração ou integração contínua. Ele assume que as equipes descobrirão as práticas técnicas por conta própria.
XP é prescritivo sobre práticas de engenharia. XP diz que você deve escrever testes primeiro. Você deve programar em par. Você vai refatorar continuamente. Você vai integrar muitas vezes por dia.
Scrum define papéis. Product Owner, Scrum Master, Time de Desenvolvimento. Esses papéis têm responsabilidades específicas.
XP é flexível sobre papéis. Há um cliente e desenvolvedores. É basicamente isso. XP assume que a equipe vai se auto-organizar em torno de papéis conforme necessário.
Scrum tem eventos específicos. Planejamento do Sprint, Daily Scrum, Revisão do Sprint, Retrospectiva do Sprint.
XP tem cadências mais flexíveis. Jogo de planejamento, standup, demo da iteração—similar, mas menos rigidamente definido.
A Diferença Real
Scrum diz como organizar. XP diz como codificar. A maioria das equipes bem-sucedidas precisa de ambos.
Muitas equipes bem-sucedidas usam a estrutura do Scrum com as práticas técnicas do XP. Esta combinação é poderosa:
Isso não é "impuro" ou errado. Os criadores originais do Scrum esperavam que as equipes trouxessem práticas de engenharia. XP as fornece.
Um padrão comum:
As equipes frequentemente chamam isso de "Scrum com práticas de engenharia XP" ou apenas "fazendo ágil bem".
Uma equipe executa sprints de duas semanas (Scrum) com TDD, programação em par e integração contínua (XP). O Scrum Master facilita o processo; os desenvolvedores são donos das práticas técnicas.
Uma equipe executa sprints e tem todos os eventos do Scrum, mas não escreve testes, nunca refatora e integra apenas no final do sprint. Eles são 'ágeis', mas a qualidade do código se deteriora a cada sprint.
Você pode fazer XP sem Scrum. Algumas equipes preferem a abordagem mais leve do XP:
Isso funciona bem para equipes que acham a estrutura do Scrum muito pesada, ou onde o trabalho chega continuamente (como operações ou suporte).
A chave é que as práticas técnicas do XP são inegociáveis. Seja você usando Scrum, Kanban ou outra coisa para organizar o trabalho, TDD, refatoração e integração contínua permanecem essenciais.
Cuidado
Algumas equipes usam 'sem Scrum' como desculpa para pular a disciplina inteiramente. XP sem disciplina de engenharia não é XP—é apenas caos.