Programação Extrema
Extreme Programming (XP) é uma abordagem ágil de desenvolvimento de software que enfatiza entregas frequentes, colaboração próxima e excelência técnica. Seu objetivo é melhorar a qualidade do software e a capacidade de resposta a mudanças de requisitos através de um conjunto de práticas de engenharia e valores de equipe.
O XP foi criado no contexto de equipes de software trabalhando em ambientes de mudanças rápidas. Ele foca no que torna o desenvolvimento de software bem-sucedido e aplica essas práticas de forma intensiva e consistente.
As principais práticas do XP incluem:
- Test-Driven Development (TDD): Escrever testes automatizados antes de escrever o código que precisa passar neles.
- Pair Programming: Dois desenvolvedores trabalham juntos em um computador, compartilhando decisões de design e revisando código em tempo real.
- Integração Contínua: As equipes integram e testam código frequentemente para detectar problemas cedo.
- Refactoring: Melhorar a estrutura interna do código sem alterar seu comportamento, para mantê-lo limpo e adaptável.
- Design Simples: Construir apenas o que é necessário agora, evitando over-engineering.
- Propriedade Coletiva do Código: Qualquer pessoa da equipe pode melhorar qualquer parte do código a qualquer momento.
- Ritmo Sustentável: As equipes evitam longas jornadas para manter a energia e a qualidade ao longo do tempo.
- Entregas Pequenas: Entregar software funcionando aos usuários frequentemente para coletar feedback e reduzir riscos.
- Cliente no Local: Ter acesso direto a alguém que entende as necessidades do negócio e pode fornecer feedback rápido.
O XP também incentiva forte colaboração em equipe e responsabilidade compartilhada pela entrega de software de alta qualidade. Muitas de suas práticas podem e devem ser combinadas com Scrum, especialmente onde o Scrum deixa espaço para as equipes escolherem suas práticas técnicas.
O XP continua sendo uma das abordagens ágeis mais influentes, especialmente para equipes que querem melhorar sua disciplina de engenharia.