Pular para o conteúdo principal

XP Extreme Programming

Conceito

Trata-se de uma metodologia ágil para equipes pequenas e médias desenvolvendo softwares com requisitos vagos e em constante mudança. Os programadores trabalham em pares e desenvolvem testes para cada tarefa antes da escrita do código-fonte em si.

Cada tarefa representa uma característica discreta/isolada do sistema e um teste unitário pode então ser projetado para essa tarefa.

Práticas

  • Programação em Pares: Os desenvolvedores trabalham em pares, um verificando o trabalho do outro. Utilizam o mesmo mouse, teclado e monitor.
  • Refactoring: Recriam o código continuamente tão logo os aprimoramentos do código forem encontrados.
  • Integração contínua: Assim que uma tarefa é concluída, este é integrado ao sistema como um todo.
  • Planejamento incremental: Os requisitos são registrados em cartões de histórias e as histórias a serem incluídas em um release são determinadas pelo tempo disponível e sua prioridade relativa. Essas histórias viram tarefas.
  • Desenvolvimento test-first: Um framework automatizado de teste unitário é usado para escrever os testes para uma nova parte da funcionalidade antes que seja implementada. TDD
  • Pequenos releases: O conjunto mínimo útil de funcionalidade que agrega valor ao negócio é desenvolvido primeiro. Releases do sistema são frequentes e adicionam funcionalidade incrementalmente ao primeiro release.
  • Reuniões em pé: Ajuda a não se perder o foco nos assuntos.
  • Protótipo operacional: Denominados soluções pontuais, que devem ser implementados e avaliados com objetivo de reduzir o risco para quando a verdadeira implementação iniciar e validar as estimativas originais para a história contendo o problema de projeto.
  • Time Coeso
  • Propriedade Coletiva: Os pares de desenvolvedores trabalham em todas as áreas do sistema, de forma que não se formem ilhas de conhecimento. Qualquer um pode mudar qualquer coisa.
  • Ritmo sustentável: 40horas semanas.
  • Client on-site: Um representando do usuário final do sistema deve estar disponível em tempo integral.
  • Metáforas: Utilização de metáforas para ajudar na comunicação com o usuário.

Processos

  1. Planejamento
  2. Projeto
  3. Codificação
  4. Teste

XP Processos

Valores

  • Comunicação
  • Simplicidade
  • Feedback
  • Coragem
  • Respeito