Os princípios que conectam valores e práticas—o 'porquê' por trás do 'o quê'.
Valores dizem o que é importante. Práticas dizem o que fazer. Mas como você os conecta? É aí que entram os princípios.
Princípios são a ponte. Eles são mais concretos que valores, mas mais abstratos que práticas. Quando você está decidindo se deve adotar uma prática ou modificá-la para seu contexto, os princípios guiam o caminho.
XP tem muitos princípios, mas vamos focar nos mais importantes.
Software é feito por pessoas, para pessoas.
Este princípio nos lembra que desenvolvedores não são recursos intercambiáveis. Pessoas têm necessidades:
As práticas XP devem atender essas necessidades. Programação em par atende necessidades de pertencimento e intimidade. Desenvolvimento orientado a testes atende necessidades de realização e segurança. Ritmo sustentável protege a saúde física e mental.
Quando uma prática parece errada, pergunte: "Isso está violando necessidades humanas?"
Se suas práticas 'ágeis' estão esgotando as pessoas, elas não são ágeis. Ritmo sustentável não é opcional—é essencial para XP.
Dinheiro importa. Tempo tem valor. Opções têm valor.
XP leva economia a sério:
Este princípio apoia entregas pequenas (entregar valor cedo), design incremental (não investir demais antecipadamente) e planejamento iterativo (responder ao que você aprende).
Também apoia ritmo sustentável: desenvolvedores exaustos cometem erros caros.
Cada prática deve beneficiar todos os envolvidos.
As melhores práticas XP são ganha-ganha-ganha:
Evite práticas que ajudam um grupo às custas de outro. Documentação escrita apenas para conformidade, nunca lida por desenvolvedores, falha no benefício mútuo. Código escrito para ser inteligente em vez de claro também falha.
Se uma prática cria ressentimento, ela provavelmente viola o benefício mútuo.
Padrões que funcionam em uma escala frequentemente funcionam em outras.
XP aplica os mesmos padrões em diferentes escalas:
Quando você encontra algo que funciona, tente em diferentes escalas. O jogo de planejamento funciona para planejamento de release e planejamento de iteração. Princípios de revisão de código funcionam para revisão de design e revisão de arquitetura.
Comece onde você está e melhore continuamente.
XP não exige perfeição desde o primeiro dia. Exige movimento. Comece com o que você pode fazer hoje e melhore a partir daí.
O objetivo não é "estar fazendo XP". O objetivo é estar melhorando. XP é uma direção, não um destino.
Este princípio também apoia falhar com segurança. Experimentos que não funcionam são oportunidades de aprendizado, não falhas.
Entregue valor continuamente, não em grandes lotes.
Este princípio alinha XP com pensamento lean e Kanban. Grandes lotes escondem problemas. Pequenos lotes os revelam rapidamente.
Fluxo reduz trabalho em progresso, o que reduz troca de contexto, o que melhora foco e qualidade. Também entrega valor aos clientes mais cedo e feedback mais rápido.
Se você não está fazendo release pelo menos uma vez por mês, pergunte por quê. Os obstáculos que você descobrir apontarão para problemas reais.
Qualidade não é negociável.
Isso parece óbvio, mas as implicações são profundas. XP diz que você pode negociar escopo ou cronograma, mas nunca qualidade.
Isso significa:
Por quê? Porque qualidade é a base da velocidade. Qualidade ruim cria bugs que te atrasam. Qualidade ruim cria código difícil de mudar. Qualidade ruim cria sistemas caros de manter.
Qualidade é a maneira mais rápida de ir rápido.
Dê o menor passo que faça progresso.
Grandes mudanças são arriscadas. Pequenas mudanças são seguras. XP sempre prefere passos pequenos:
Passos de bebê não significam progresso lento. Mil passos pequenos podem cobrir mais terreno que dez grandes saltos—e com menos chance de cair.
Quando você estiver travado, pergunte: "Qual é a menor coisa que posso fazer agora que faça progresso?"