Você já ouviu falar em eXtreme Programming (XP)?

em Desenvolvimento, Metodologias Ágeis.

Hoje vou falar sobre um assunto que considero especial: eXtreme Programming. Ele foi (e ainda é) responsável por grandes mudanças em minha vida profissional, me ajudando a evoluir e a repensar tudo o que achava que sabia sobre projetos e engenharia de software.

O eXtreme Programming (XP) é uma metodologia de desenvolvimento de software que se baseia na ideia de encarar projetos com escopos vagos e em constante mudança.

Aqui acreditamos que na prática não se sabe como o software poderá resolver o problema do cliente e que o andamento do projeto é um processo de descoberta constante. Com isso em mente, as iterações costumam ser bem menores do que em um Sprint de Scrum, por exemplo. Em XP trabalhamos com ciclos semanais e trimestrais.

Ciclo Trimestral

Ao começo de cada trimestre o time se reúne com o cliente presencialmente e uma lista de itens é levantada e discutida sobre o que deve existir no software para resolver o problema apresentado por ele. Após essa definição, damos início aos ciclos semanais de desenvolvimento.

Ciclo Semanal

Um dos grandes valores em XP é a comunicação, onde existe sempre a preferência por conversas presenciais e, por conta disto, a presença do cliente junto ao time semanalmente é essencial. Uma vez por semana o time se reúne com o mesmo presencialmente e, de acordo com o que que foi discutido no início do ciclo trimestral, os itens são analisados.

O time discute e busca priorizar junto ao cliente tarefas com base no que é possível desenvolver e entregar durante aquela semana.

Após esta definição, o desenvolvimento dos itens acordados são realizados durante a semana e, após aquela semana, o cliente se reúne novamente com o time para avaliar o que foi feito.

Com base no que foi entregue, o cliente consegue sentir se aquilo pode realmente resolver o seu problema e o time consegue um feedback imediato sobre o trabalho realizado. Após essa avaliação, todos o itens são revisados e uma nova priorização é feita para definir quais serão as tarefas a serem realizadas naquela semana.

Encarando as Mudanças

Por conta de suas iterações curtas, temos a vantagem de evitar ao máximo o desperdício de trabalho, pois a cada semana o cliente pode dizer se estamos no caminho certo, ou se estamos desenvolvendo algo que na prática não está resolvendo o seu problema.

Isso permite que a toda semana o planejamento do que deve ser feito possa mudar completamente, construindo assim uma solução de software baseada no constante aprendizado semanal. Porém, a possibilidade de o escopo mudar radicalmente a cada semana pode ser um grande problema, já que mudança em software é geralmente encarada como algo ruim. Devido a isso, o XP foca em diversas práticas no desenvolvimento de software que visam evitar problemas com a mudança constante de escopo.

Algumas Práticas

Para não sofrer com as constantes mudanças, diversas práticas são de extrema importância em XP, como por exemplo:

  • Desenvolvimento Orientado a Testes (TDD)
  • Integração Continua
  • Programação em Par
  • Refatoração Constante

Elas buscam garantir que o código tenha uma alta qualidade e que mudanças possam ser realizadas de forma tranquila.

Fim do Ciclo Trimestral

Após o fim de um Ciclo Trimestral, o time se reúne com o cliente para analisar o que foi desenvolvido até o momento e refletir sobre o trimestre que se encerrou para então realizar um novo planejamento a ser seguido nos próximos 3 meses.

Indo Além

Confesso que me sinto mal ao tentar resumir uma metodologia tão rica como XP em poucas palavras. Tentei passar uma visão extremamente superficial apenas para começarmos a criar uma ideia sobre como o desenvolvimento de software é encarado a partir dela.

Recomendo a qualquer interessado no assunto que busque mais sobre eXtreme Programming e procure se aprofundar em suas propostas e ensinamentos. Algumas recomendações de leitura:

  • Programação Extrema (XP) Explicada: Acolha as Mudanças – Kent Beck
  • Extreme Programming – Vinícius Manhães Teles

Recomendo também essa talk do TDC de 2008 feita por Vinícius Teles. E agora, ficou claro o que é eXtreme Programming (XP)? Se ainda restou alguma dúvida, comenta aqui embaixo.

Você também pode gostar