A metodologia XP (eXtreme Programming) é uma metodologia ágil de desenvolvimento de software que foi criada com o objetivo de aumentar a qualidade do software e a satisfação dos clientes.
Assim como adormece no Scrum, a metodologia XP se concentra em pequenos ciclos de desenvolvimento, chamados de “iterações” ou também de “sprints”.
A eXtreme Programming possui uma série de características encontradas em outras metodologias ágeis, porém seu foco concentra-se na comunicação frequente entre desenvolvedores, clientes e usuários, e adaptação constante a mudanças.
Você vai ler nesse artigo:
Fundamentos e técnicas da eXtreme Programming
Assim como todos os frameworks ágeis de gerenciamento e desenvolvimento, a XP também possui seus fundamentos e princípios, técnicas e boas práticas, todos objetivos e de fácil entendimento.
Princípios e valores da Extreme Programming
Os principais evangelistas dessa metodologia frequentemente definem os princípios e valores da XP em 10 itens.
De modo geral, a maioria dos profissionais envolvidos no desenvolvimento de software em times que utilizam a metodologia concordam com a lista.
O fato de serem 10 princípios e valores, acabou originando uma brincadeira jocosa com as leis bíblicas de Moisés: Conheça os “10 mandamentos da eXtreme Programming”:
- Comunicação: a comunicação aberta e honesta entre os membros da equipe e com o cliente é considerada essencial para o sucesso do projeto.
- Simplicidade: o software deve ser simples e fácil de entender, sem elementos desnecessários.
- Feedback: o feedback contínuo é essencial para o processo de desenvolvimento e para garantir que o software atenda às necessidades do cliente.
- Coragem: os membros da equipe devem ser corajosos e estar dispostos a mudar de direção rapidamente se necessário.
- Respeito: todos os membros da equipe devem ser respeitados e valorizados.
- Parceria: a equipe deve trabalhar como uma parceria, com todos os membros contribuindo para o sucesso do projeto.
- Otimização: a equipe deve otimizar o trabalho para atender às necessidades do cliente e do projeto.
- Integração contínua: o software deve ser integrado e testado continuamente para garantir a qualidade.
- Estimativa: deverão ser estimados o esforço e prazo de cada atividade mandatória para a conclusão do projeto.
- Sustentabilidade: a equipe deve trabalhar em um ritmo sustentável para garantir a qualidade e evitar o esgotamento.
É importante não confundir os princípios e fundamentos, com as técnicas e práticas de desenvolvimento.
A lista acima refere-se à organização, gestão e comunicação do time XP, e não sobre as formas e técnicas que deverão ser utilizadas durante a execução das atividades de desenvolvimento.
Regras da eXtreme Programming
Já comentamos sobre os principais fundamentos e valores da XP, que tratam prioritariamente de aspectos organizacionais e da dinâmica de funcionamento do time, mas onde estão as orientações técnicas?
Obviamente que a metodologia ágil XP define ainda uma série de regras técnicas, também chamadas de ‘leis’. Essas são direcionadas de forma específica para o aspecto técnico, as principais são:
- Customer on-site: Um stakeholder que represente o cliente ou patrocinador deve efetivamente ser considerado como um integrante do time, com atenção especial em manter uma comunicação eficiente.
- Coding standard: Tenha zelo pelo seu código, respeite os padrões da linguagem e da arquitetura definida para o produto ou projeto. Afinal, você não quer que um código porco persiga sua honra por toda a eternidade, ou quer?
- Test driven development: A XP só faz sentido se respeitarmos essa regra: oriente o desenvolvimento a partir de cenários e casos de testes. Alguns poucos afortunados já vivem essa realidade, mas para maioria ainda é um sonho distante.
- Serial integration: O Princípio de exclusão de Pauli diz que, “…dois corpos não podem ocupar o mesmo espaço ao mesmo tempo…“, e assim também é com o processo de integração dos códigos: apenas um par de devs por vez.
- Continuous integration: É impossível vencer um Rally Paris Dakar dirigindo um Celta ano 2004, com 70 cavalos anêmicos dentro do motor VHC 1.0. Ficou clara a importância de um ambiente dedicado para deployment e integração?
Diferenças entre Scrum e XP
Quais são as principais diferenças entre as metodologias XP e o framework ágil Scrum? Tanto o Scrum quanto o XP (Extreme Programming) são metodologias ágeis ou também chamadas de frameworks de desenvolvimento de software, entretanto existem diferenças relevantes entre elas.
Comparativo conceitual entre XP e Scrum
As características específicas existentes nos frameworks XP e Scrum são originadas pelo objetivo principal de cada uma.
De modo geral podemos definir o Scrum como uma metodologia de gerenciamento de times e projetos, enquanto o XP é considerada uma metodologia de desenvolvimento de software.
Características exclusivas do SCRUM
O Scrum é direcionado principalmente ao gerenciamento do projeto, backlog do produto, das tarefas de desenvolvimento e da dinâmica de funcionamento do time.
Ele segue uma estrutura de “ciclo de vida” com ciclos curtos chamados de sprints, onde equipes trabalham para entregar um conjunto de funcionalidades no final de cada sprint.
A metodologia ágil Scrum também inclui papéis como o “Scrum Master” e “Product Owner” para garantir que o processo seja seguido conforme o planejado.
Características exclusivas da XP – (eXtreme Programming)
O XP “herda” quase que a totalidade os princípios do Scrum e Kanban, como o foco no cliente e no produto, desenvolvimento em sprints, e time autogerenciável.
São somadas a essas características técnicas, princípios e boas práticas específicas do parte técnica, ou seja, arquitetura, desenvolvimento e testes.
A XP diferentemente do Scurm, se concentra mais nas práticas de programação, como programação em pares e testes automatizados. Seu foco é entregar software de alta qualidade de forma rápida, e inclui práticas como a programação em pares, reuniões diárias curtas e incorporação contínua de feedback do cliente.
Resumindo, Scrum é uma metodologia para o gerenciamento de times de desenvolvimento e XP é uma metodologia de programação, mas ambos são baseados na filosofia ágil e podem ser combinados.