O Extreming Programming (XP) tem muita semelhança com SCRUM em termos de valores e modelo de desenvolvimento de projetos, ou seja, como desenvolver projetos que possam abraçar as incertezas de forma mais seguras.
O objetivo principal do XP é levar ao extremo um conjunto de práticas que são ditas como boas na engenharia de software. Entre elas podemos citar o teste, visto que procurar defeitos é perda de tempo, nós temos que constantemente testar. Mas o XP possui mais práticas do que apenas testar, entre as práticas, o XP diz que:
Já que testar é bom, que todos testem o tempo todo;
Já que revisão é bom, que se revise o tempo todo;
Se projetar é bom, então refatorar o tempo todo;
Se teste de integração é bom, então que se integre o tempo todo;
Se simplicidade é bom, desenvolva uma solução não apenas que funcione, mas que seja a mais simples possível;
Se iterações curtas é bom, então mantenha-as realmente curtas;
O XP muda o paradigma, onde não temos o medo da mudança, pois o errar é feito com um baixo custo. Diferente do tradicional em que se diz que quanto mais tarde a mudança, maiores são os custos, e assim sendo nunca devemos fazer mudanças o XP diz que devemos sim estar constantemente fazendo mudanças e não devemos teme-las, principalmente quando seguimos os seus valores e as suas práticas.
O manta do desenvolvedor XP é resumido pelas palavras:
Escute, para que saibamos qual é o problema a resolver e assim sendo conversar bastante com o cliente.
Planeje, para que sempre que possamos fazer a coisa mais importante.
Codifique, senão o software não sai. XP é contra a documentação que não agrega valor, portanto enquanto um documento não é codificado ele é apenas um documento, dessa forma o documento mais importante é realmente o código.
Teste, senão não iremos realmente saber se está funcionando.
Refatore, senão o código vai ficar tão ruim que será impossível dar manutenção. Mantemos o espaço de trabalho sempre limpo através das práticas de refatoração.
Valores do XP
As práticas do XP são fundamentadas em valores. Entre os valores temos:
Comunicação
Os problemas nos projetos invariavelmente recaem sobre alguém não falando com alguém sobre algo importante.
Assim, a comunicação enfatiza que devemos sempre estar se comunicando seja entre desenvolvedores ou com os clientes.
A comunicação ajuda na eliminação de documentos e favorece a comunicação face a face.
Simplicidade
É tentar fazer o mais simples possível e caso seja necessário faremos algo mais complexo amanhã. Muitas vezes algo é feito de forma completa e posteriormente não é mais sequer usado ou necessário. Portanto, entre os princípios temos: Qual é a coisa mais simples que funciona?
Fazendo um paralelo entre a simplicidade e a comunicação conclui-se que a simplicidade faz com que temos menos a comunicar e de uma forma mais completa e por sua vez a comunicação faz com que transmitimos mais clareza e confiança para alimentar a simplicidade.
Feedback
É muito presente no SCRUM através das reuniões diárias, retrospectiva, reuniões de revisão do produto, etc.
Feedback é o valor primordial dentro do desenvolvimento ágil. O XP foi o precursor a falar em feedback e afirma que ele possibilita que o software evolua. O XP, como algo mais técnico que o SCRUM, diz que devemos sempre “Perguntar ao software, e não a um documento", uma forma de alcançar isso é através dos testes automatizados que permitem feedback rápido.
O Feedback precisa ser cedo para sabermos se estamos fazendo a coisa correta, precisa ser concreto perguntando diretamente ao código e precisa ser constante através de iterações curtas, incrementos, e releases.
Aqui garantimos constantemente junto ao cliente se estamos fazendo certo e o prazo esta seguindo bem o planejado.
Coragem
Muitas vezes não fazemos as coisas porque não temos coragem de fazer as mudanças.
XP diz que devemos ter coragem de sempre colocar o cliente a par do que está acontecendo. Entre aquilo que o XP considera que devemos ter coragem de fazer destacam-se:
Acreditar na capacidade de reagir a mudanças;
Trocar de paradigma;
Aprender com os erros;
Dar e receber feedback sem medo das consequências;
Acreditar no feedback concreto (não na “teoria”);
Fazer o que precisa ser feito;
Jogar fora código ruim;
Jogar fora protótipos criados para testar ideias.
Coach
É uma pessoa responsável por garantir a aderência a estes valores nas práticas. O Coach normalmente é uma pessoa experiente que também ajuda as equipes a implementarem o XP e monitorar se as coisas estão sendo bem seguidas.
Por fim, XP preconiza que Codificação é a atividade central do projeto, que os Testes (que também são código) servem de especificação de requisitos, e a Comunicação oral entre desenvolvedores é fundamental.
Fonte: http://www.devmedia.com.br/introducao-ao-extreme-programming-xp/29249