ISÃO GERAL
3.1 V ISÃO GERAL
Extreme Programming (XP) é uma abordagem ágil para desenvolvimento de software. Por “ágil” entende-se que ela compartilha dos mesmos princípios que o Manifesto Ágil (BECK et al., 2001), que são, entre outros: comunicação intensa, trabalho em equipe e proximidade entre os envolvidos no processo. Ela inclui:
• uma filosofia de desenvolvimento baseada nos valores de comunicação, simplicidade, feedback, coragem e respeito;
• um conjunto de práticas de desenvolvimento de software que se complementam e exercitam os valores, como a programação em pares, estórias
de usuários, programação orientada a testes etc.; e, • um conjunto de princípios que servem como ponte entre os valores e as
práticas, como fluxo, benefício mútuo, responsabilidade aceita etc. (BECK; ANDRES, 2004).
Para Beck, valores representam um nível mais abstrato de conhecimento e compreensão, são como guias em nível estratégico para julgar o que se vê, pensa e faz. Eles devem representar os interesses da organização. Todos os que fazem parte da companhia devem estar alinhados com os valores em vigor. Eles são o motivo para realizar uma determinada prática.
Práticas são atividades concretas e bem descritas. Elas devem ser evidências da adoção dos valores e da importância dada a eles. Programação em pares, por exemplo, promove comunicação entre os membros da equipe; ciclos curtos de desenvolvimento promovem feedback; e assim por diante.
Para preencher a lacuna entre a abstração dos valores e a concretude das práticas estão os princípios. O princípio da auto-semelhança defende que soluções que deram certo devem ser aplicadas em outras ocasiões sempre que possível e adequado, e pode ser observado em Para preencher a lacuna entre a abstração dos valores e a concretude das práticas estão os princípios. O princípio da auto-semelhança defende que soluções que deram certo devem ser aplicadas em outras ocasiões sempre que possível e adequado, e pode ser observado em
de novas funcionalidades em seu nível mais granular, sob a forma de testes unitários, e em mais alto nível, os testes funcionais. As principais características de XP, que a diferencia de outras abordagens, são: os ciclos curtos de desenvolvimento, que acarretam feedback rápido e contínuo; a abordagem incremental para o planejamento; emprego de testes automatizados escritos pelos desenvolvedores e pelos clientes; o emprego de processos evolutivos de análise e projeto de sistemas; a capacidade de acolher mudanças nos requisitos a qualquer momento do projeto para responder melhor às mudanças do negócio. (BECK; ANDRES, 2004).
Apesar de conhecida, em seus primórdios, por ser uma metodologia voltada para equipes pequenas que trabalham com definições de requisitos de software vagas e susceptíveis à mudança, há diversos relatos de aplicação da metodologia em condições diferentes às da definição, como a aplicação de XP em equipes com cerca de 40 desenvolvedores, 15 analistas de negócio e 10 analistas de qualidade (ELSSAMADISY, 2001).