Preferências de cookies

Escolha o que a Projeto Diário pode usar neste navegador. Você pode mudar de ideia quando quiser pelo link "Preferências de cookies" no rodapé.

Sempre ligados. Mantêm a sessão e o login, protegem os formulários (token CSRF, limite de tentativas e verificação anti-robô Cloudflare Turnstile) e guardam esta escolha.

Google Analytics 4, carregado pelo Google Tag Manager: páginas visitadas, origem do acesso e ações no site, em estatísticas. Sem publicidade e sem personalização de anúncios.

Tabela de cookies na Política de privacidade

Métodos Ágeis e Scrum

O que é XP (Extreme Programming) e quais são suas práticas

Entender o que é XP (Extreme Programming) costuma vir de um incômodo concreto: o time já faz Sprints, reuniões diárias e retrospectivas, mas cada entrega quebra alguma coisa que funcionava, a homologação demora semanas e ninguém tem coragem de mexer no código antigo. O processo de gestão está lá; o que falta é disciplina técnica. É exatamente esse vazio que o XP preenche.

Extreme Programming, ou programação extrema, é um método ágil para equipes de desenvolvimento de software. Ele combina um conjunto pequeno de valores com práticas de engenharia muito concretas: escrever o teste antes do código, programar em dupla, integrar várias vezes por dia, manter o design simples e trabalhar em ciclos curtos com o cliente por perto.

A seguir estão a origem do método, os valores e princípios, as práticas explicadas uma a uma, o encaixe com Scrum e um roteiro para começar sem parar o projeto.

Formação relacionada

Agile Scrum Foundation

Papéis, eventos, práticas e ciclo de vida do Scrum, com preparação para o exame ASF.

ASF 16 PDUs

Conhecer a formação

De onde veio a metodologia XP

O XP nasceu num projeto de folha de pagamento da Chrysler, conhecido como C3. Kent Beck foi chamado para ajudar no desempenho do sistema, percebeu que o problema maior estava no processo de desenvolvimento e assumiu a liderança do projeto em março de 1996. Ron Jeffries entrou em seguida, como coach, para transformar as práticas em hábito da equipe.

O nome vem da ideia que Beck descreveu ao relatar o início do trabalho: pegar as práticas que considerava essenciais, levá-las ao grau máximo e deixar de fora o resto. Aplicada às práticas, a lógica fica assim: se revisar código é bom, revisa-se o tempo todo (programação em par). Se testar é bom, testa-se antes de escrever (testes primeiro). Se integrar é bom, integra-se várias vezes por dia.

O método foi publicado no livro Extreme Programming Explained, de Kent Beck, em outubro de 1999. A segunda edição, de 2004, escrita com Cynthia Andres, reorganizou as práticas e é a referência usada aqui.

Os cinco valores do XP

O XP parte de valores, porque prática sem propósito vira ritual. A segunda edição lista cinco:

  1. Comunicação. Muitos problemas de projeto nascem de uma informação que não chegou a quem precisava dela. As práticas do XP forçam a conversa.
  2. Simplicidade. Fazer a coisa mais simples que resolve o problema de hoje, sem construir para necessidades imaginadas.
  3. Feedback. Saber cedo se o caminho está certo: o teste diz em segundos, o cliente diz em dias, o uso em produção diz em semanas.
  4. Coragem. Mudar o design, jogar código fora, dizer a verdade sobre prazo. A coragem é sustentada pelos outros valores, principalmente pelos testes.
  5. Respeito. Acrescentado na segunda edição: as pessoas da equipe se importam umas com as outras e com o projeto.

Entre os valores e as práticas, Beck coloca catorze princípios, como humanidade, economia, benefício mútuo, melhoria, reflexão, fluxo, qualidade e passos pequenos. Eles servem para decidir o que fazer quando nenhuma prática se aplica diretamente.

Quais são as práticas do XP

Na segunda edição, as práticas foram divididas em dois grupos: primárias, que funcionam sozinhas e já trazem ganho quando adotadas, e corolárias, que só dão certo depois que as primárias estão firmes. As treze práticas primárias são:

Prática O que significa no dia a dia
Sentar junto A equipe trabalha no mesmo espaço (ou com canais equivalentes no remoto), para que dúvidas virem conversa de minutos.
Equipe inteira Todas as habilidades necessárias estão no time: desenvolvimento, testes, negócio, design.
Espaço de trabalho informativo Quem chega entende em segundos como está o projeto, com histórias e progresso à vista.
Trabalho energizado Trabalhar só as horas em que se é produtivo; cansaço gera defeito.
Programação em par Duas pessoas, um computador: uma escreve, a outra revisa e pensa à frente, alternando.
Histórias O planejamento usa unidades de funcionalidade visíveis para o cliente, com estimativa.
Ciclo semanal Toda semana a equipe planeja, escolhe as histórias e entrega software testado.
Ciclo trimestral A cada trimestre, a equipe olha o quadro maior: temas, gargalos, metas.
Folga Incluir no plano tarefas que podem ser descartadas se houver atraso, para cumprir o compromisso.
Build de dez minutos Compilar e rodar todos os testes automaticamente em até dez minutos.
Integração contínua Integrar e testar as mudanças várias vezes ao dia, em vez de juntar tudo no fim.
Programação com teste primeiro Escrever um teste automatizado que falha antes de mudar o código.
Design incremental Investir no design um pouco todos os dias, melhorando o código existente conforme a necessidade aparece.

As práticas corolárias incluem envolvimento real do cliente, implantação incremental, continuidade da equipe, análise de causa raiz, código compartilhado, base de código única, implantação diária e contrato com escopo negociado.

As doze práticas da primeira edição

Muitos materiais ainda citam as doze práticas de 1999: jogo do planejamento, pequenas entregas, metáfora, design simples, testes, refatoração, programação em par, propriedade coletiva, integração contínua, semana de 40 horas, cliente no local e padrões de código. A segunda edição não as descartou; ela as redistribuiu. O jogo do planejamento virou os ciclos semanal e trimestral, a semana de 40 horas virou trabalho energizado, o cliente no local virou sentar junto, equipe inteira e envolvimento real do cliente, e a refatoração passou a fazer parte do design incremental. Se você estudar por material antigo, os conceitos são os mesmos com outros nomes.

XP e Scrum: concorrentes ou complementares?

Scrum e XP são comparados com frequência, mas os dois cuidam de coisas diferentes. O Scrum é um framework de gestão: define responsabilidades, eventos e artefatos e deliberadamente não diz como o time deve construir o produto. O XP é, acima de tudo, um conjunto de práticas de engenharia.

Aspecto Scrum XP
Foco Organizar o trabalho e a inspeção do produto Qualidade técnica e resposta rápida a mudanças
Ciclo Sprint de até um mês Ciclo semanal, dentro de um ciclo trimestral
Práticas de código Não define Teste primeiro, par, integração contínua, design incremental
Onde se aplica Qualquer trabalho complexo Desenvolvimento de software

Por isso a combinação é tão comum: o Scrum dá o ritmo, a Meta da Sprint e a inspeção com o cliente; o XP garante que o Incremento seja de fato utilizável ao fim de cada Sprint. Uma comparação com Kanban e critérios de escolha está em Kanban, Scrum e XP: comparação e como escolher, e o lugar do XP entre os demais métodos ágeis, em tipos de metodologias ágeis.

Quando o XP faz mais diferença

O XP rende mais em projetos de software com requisitos que mudam e com custo alto de defeito. Alguns cenários típicos, descritos aqui como exemplos ilustrativos:

  • Sistema interno de uma operadora de saúde, com regras de negócio que mudam por norma e um histórico de correções que quebram outras partes. Testes automatizados escritos antes do código e integração contínua reduzem o medo de mudar.
  • Aplicativo de uma rede de varejo em evolução contínua, com entregas frequentes. Build rápido e implantação incremental encurtam o caminho entre a ideia e o cliente.
  • Equipe de um órgão público que herdou um sistema sem documentação. Programação em par espalha o conhecimento e diminui a dependência de uma única pessoa.

Ele sofre quando a equipe não tem autonomia sobre o próprio processo técnico, quando o cliente não está disponível para conversar e quando a organização mede produtividade por horas trabalhadas, o que vai contra o trabalho energizado.

Como começar a usar XP no seu time

Não é preciso adotar tudo de uma vez. Um caminho seguro:

  1. Comece pelo build e pelos testes. Automatize a compilação e um primeiro conjunto de testes. Sem isso, as outras práticas não têm rede de proteção.
  2. Adote integração contínua. Combine que ninguém fica mais de um dia sem integrar e que build quebrado é prioridade de todos.
  3. Experimente programação em par em tarefas difíceis. Código crítico, correções delicadas e entrada de pessoas novas são bons pontos de partida.
  4. Escreva o teste antes da mudança nas partes mais instáveis do sistema.
  5. Torne o trabalho visível. Um quadro com as histórias da semana e o estado do build ao alcance de todos.
  6. Revise na retrospectiva. A cada ciclo, a equipe escolhe uma prática para aprofundar ou ajustar.

Para ver como essas práticas se encaixam no ciclo completo de um projeto de software, do planejamento à implantação, leia metodologia ágil no desenvolvimento de software. O panorama de valores, métodos e escolha da abordagem está no guia completo de métodos ágeis e Scrum.

O próximo passo

Escolha uma única prática para as próximas duas semanas, de preferência o build automatizado com testes, e combine com o time como saber se ela funcionou: menos defeitos devolvidos pela homologação, por exemplo. Se você quer consolidar a base de gestão ágil que sustenta essas práticas, o curso Agile Scrum Foundation da Projeto Diário cobre papéis, eventos, práticas e ciclo de vida do Scrum, com preparação para o exame ASF.

Perguntas frequentes

O que é a metodologia ágil de desenvolvimento chamada XP?
É um método ágil voltado para equipes de software, criado por Kent Beck, que reúne valores e práticas técnicas como programação em par, testes escritos antes do código, integração contínua e design incremental. O objetivo é responder a mudanças de requisito sem perder qualidade.
Quais são os valores do XP?
Comunicação, simplicidade, feedback, coragem e respeito. O respeito entrou na segunda edição do livro de Kent Beck, de 2004.
Qual a diferença entre Scrum e XP?
O Scrum organiza o trabalho do time (papéis, eventos e artefatos) e não diz como programar. O XP define práticas de engenharia de software. Por isso muitos times usam o Scrum para a gestão e o XP para a parte técnica.
XP pode ser usado fora do desenvolvimento de software?
Os valores e algumas práticas, como ciclos semanais e espaço de trabalho informativo, servem para qualquer equipe. Mas a maior parte das práticas, como integração contínua e testes antes do código, só faz sentido em software.

Receba o Diário do Gerente de Projetos

Uma vez por semana: um artigo, uma ferramenta gratuita e uma questão comentada do PMP, da Projeto Diário e do Coaching de Alto Impacto. Você escolhe os assuntos.

Assuntos de interesse (opcional)

WhatsApp