Arquivos mensais: janeiro 2015

Extreme Programming

xp1

Extreme Programming (XP), idealizado por Kent Beck, é um processo de desenvolvimento de software iterativo e incremental que se encaixa na categoria de metodologias ágeis. Ele busca entregar o máximo de valor para o cliente com o uso de boas práticas. A sua aplicação é recomendada para projetos que possuem requisitos voláteis e pouco claros e para aqueles projetos desenvolvimento de maneira incremental [Teles 2004, p. 21].

A metodologia XP é baseada em 4 valores, como descreve [Teles 2004, p. 22]:

  • Feedback: Durante o andamento do projeto, o cliente aprende novas regras ou requisitos que são realimentados para a equipe de desenvolvimento. Isto permite conduzir o processo para aquilo que irá gerar mais valor.
  • Comunicação: Uma comunicação transparente e efetiva entre o cliente e o time de desenvolvimento permite uma maior eficiência na transmissão de informações.
  • Simplicidade: O desenvolvimento de software deve ser guiado apenas pelas soluções que são suficientes para atender aos desejos do cliente.
  • Coragem: Tanto o cliente quanto a equipe de desenvolvimento devem ser corajosos para aplicar as práticas e valores do XP, acreditando que isso irá trazer benefícios para o seu produto.

Para apoiar estes valores, o XP sugere a aplicação das seguintes práticas [Teles 2004, p. 23-27]:

  • Cliente presente: o cliente deve coordenar o andamento do projeto baseado nos feedbacks recebidos durante o processo de desenvolvimento.
  • Jogo de planejamento: o cliente avalia as funcionalidades a serem desenvolvidas e as prioriza para as próximas iterações ou releases.
  • Stand Up Meeting: reunião diária realizada pela equipe de desenvolvimento para avaliar o andamento da iteração.
  • Programação em Par: prática de desenvolvimento que consiste em dois programadores implementando em um mesmo computador. Isto permite que o desenvolvimento seja mais simples e eficaz, além de contribuir para a revisão de código enquanto é construído.
  • Desenvolvimento guiado pelos testes: os desenvolvedores escrevem testes para suas funcionalidades antes de codificá-las.
  • Refactoring: A equipe de desenvolvimento deve, regularmente, manter a sua base de código flexível para facilitar o refactoring (modificação do código sem alterar o seu comportamento).
  • Código coletivo: todos os desenvolvedores possuem acesso ao código do sistema, sem restrição de acesso.
  • Código padronizado: a equipe deve estabelecer um padrão de codificação e formatação de código.
  • Design simples: o desenvolvimento deve ser voltado para as soluções mais simples e enxutas para atender aos requisitos.
  • Metáfora: significa a utilização de termos de negócio usados pelo cliente, a fim de facilitar a transmissão de ideias complexas de forma simples.
  • Ritmo sustentável: o XP recomenda que a equipe de desenvolvimento trabalha oito horas por dia e evitem fazer horas-extras, visto que isso evita que a equipe perca criatividade e motivação no trabalho.
  • Integração contínua: prática que define que a equipe deve, diversas vezes ao dia, integrar e testar o código produzido com a base de código já existente. Isto permite garantir que o sistema esteja sempre funcionando de forma harmoniosa.
  • Releases curtos: o XP permite gerar um fluxo contínuo de valor para o cliente através de entregas frequentes (a cada iteração).

Estes valores e práticas fazem do XP uma metodologia simples de ser aplicada e ao mesmo tempo pode trazer grandes resultados. Porém, nas palavras de [Teles 2004, p.219], ”a maior dificuldade na venda do XP é exatamente a barreira cultural que precisa ser vencida. XP é diferente e o que é diferente costuma causar medo e ansiedade”. É necessário um grande grau de maturidade (tanto por parte do cliente quanto por parte do time de desenvolvimento) para implantar este processo e se beneficiar de seu uso.

 

Referência

Teles, V. M. (2004). Extreme Programming. Novatec.