4.2 - Programação Extrema (XP – eXtream Programming)
Programação Extrema ou simplesmente XP é outra abordagem ágil muito popular que foi desenvolvida com base em princípios e práticas adotadas em níveis extremos de senso comum. Como outros métodos ágeis, o XP também defende iterações curtas e lançamentos frequentes de código com o objetivo de aumentar a produtividade e acomodar as mudanças de requisitos.
XP foi projetado para equipes de oito a dez desenvolvedores que trabalham com a linguagem de programação orientada a objeto. A abordagem rapidamente se tornou popular, entre os desenvolvedores de software que não estavam satisfeitos com as abordagens de desenvolvimento de software tradicionais.
Entre as principais práticas XP encontram-se:
Os cinco valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback, coragem e respeito. A partir desses valores, possui como princípios básicos: feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade.
XUma estreita interação entre clientes e desenvolvedores é incentivada para estimar e priorizar requisitos para o próximo lançamento. Os requisitos são capturados como histórias dos usuários sobre cartões de história. Os programadores são esperados para planejar e entregar apenas as histórias do usuário acordados com os clientes.
XUma versão inicial de um sistema é liberada para operação após algumas iterações. Novos recursos são entregues em versões subsequentes em uma base diária ou semanal.
XXP incentiva os desenvolvedores a manter o projeto de um sistema tão simples quanto possível.
XO primeiro teste significa que os desenvolvedores escrevem testes de aceitação para o seu código antes de escrever o código em si. Os clientes escrevem testes funcionais para cada iteração, e no fim de cada iteração, é esperado que todos os testes sejam executados com êxito.
XO projeto de um sistema evoluiu, transformando o design do sistema de uma forma que todos os casos de teste sejam executados com êxito.
XTudo novo código é integrado ao sistema de forma constante. Todos os testes funcionais ainda devem ocorrer após a integração ou o novo código é descartado.
XTodos os desenvolvedores trabalhando em conjunto. Isso significa que qualquer desenvolvedor pode fazer alterações em qualquer parte do código a qualquer momento tal for considerado necessário.
XUm cliente senta-se com a equipe de desenvolvimento o tempo todo. O cliente responde a perguntas no local, realiza testes de aceitação, e assegura o progresso no desenvolvimento.
XSe alguém da equipe de desenvolvimento tem que trabalhar horas extras em duas semanas consecutivas, é um sinal de um grande problema. Os requisitos devem ser selecionados para cada iteração de uma forma que os desenvolvedores não necessitem trabalhar horas extras.
XOs membros de uma equipe de subscrever um conjunto de regras. As regras podem ser alteradas a qualquer momento, desde que haja um consenso sobre a forma de avaliar os efeitos da mudança.
X