Metodologia XP (eXtreme Programming) – Desenvolvimento Ágil

Esta série de artigos sobre Metodologia XP de desenvolvimento é uma versão compacta do trabalho de conclusão de curso (TCC) onde o título original da monografia em que foi baseada esta série é:

O USO DA METODOLOGIA XP NO DESENVOLVIMENTO DE SOFTWARE E OS IMPACTOS NA GESTÃO DE RISCOS


Toda semana, sempre às segundas-feiras, postaremos uma parte ou capítulo da monografia, o que totalizará 10 semanas de postagens. No capitulo de hoje, abordaremos o tópico “Desenvolvimento Ágil” onde abordaremos superficialmente o surgimento dos princípios do manifesto ágil que deram origem ao movimento e à criação das principais metodologias de desenvolvimento ágil da atualidade.

Sumário do artigo “Metodologia XP”:

Metodologia XP ( eXtreme Programming )

Desenvolvimento ágil

As metodologias tradicionais de desenvolvimento foram criadas em um cenário muito diferente do atual. No cenário anterior, as limitações tecnológicas e a falta de ferramentas para a criação de softwares, tornavam o custo muito alto para o desenvolvimento e manutenção destes. Portanto, era essencial planejar e documentar todo o software para então implementá-lo (VIANA & DESCHAMPS, 2007).

Segundo Pressman (2006), essa prática de projetar todo o sistema para só então implementar é obsoleta para o cenário atual. É praticamente impossível prever com antecedência todos os detalhes de um sistema, devido às condições mutáveis de mercado e a frequente evolução das necessidades do usuário final.

Um dos problemas no desenvolvimento de software é a enorme quantidade de detalhes que precisam ser considerados. Segundo Beck (2000, apud CASTRO, 2007), o cliente tem o conhecimento de apenas alguns aspectos do software que ele deseja e só passará a ter o restante depois de utilizar o sistema. Portanto, é difícil ter uma versão completa do documento de requisitos antes de começar a programar, pois o cliente não especifica todos os detalhes no início do projeto pelo simples fato dele mesmo não os conhecer. Além disso, mesmo que ele soubesse de todos os detalhes, especificá-los em documento seria muito difícil, devido à grande quantidade de elementos que precisariam ser descritos.

Para suprir essas e outras necessidades da Engenharia de Software, Kent Beck e outros dezesseis notáveis consultores se reuniram em 2001 e criaram um novo conceito de processo de software: o Desenvolvimento Ágil.

O Desenvolvimento Ágil é uma nova metodologia criada por profissionais renomados na engenharia de software, que só conseguiram maximizar os resultados pensando e trabalhando de forma muito diferente das descritas nos livros. Embora cada um tivesse suas próprias teorias sobre desenvolvimento de software, todos concordavam que as teorias tinham algo em comum. Foi dessa forma, que eles definiram um pequeno conjunto de princípios e criaram o Manifesto para o Desenvolvimento Ágil de Software, freqüentemente chamado apenas de Manifesto Ágil (CASTRO, 2007).

Os princípios do Manifesto Ágil são:

  • Indivíduos e interações em vez de processos e ferramentas;
  • Software funcionando em vez de documentação abrangente;
  • Colaboração do cliente em vez de negociação de contratos;
  • Resposta a modificações em vez de seguir um plano.

De acordo com Viana & Deschamps (2007), o Manifesto Ágil não descarta os processos, ferramentas, documentações, negociações e planejamentos, mas procura dar a esses itens um valor secundário diante dos indivíduos e interações, do bom funcionamento do software, da colaboração do cliente e das respostas velozes às modificações.

Pressman (2006) afirma que o Desenvolvimento Ágil requer a utilização de pequenos e constantes incrementos de software, e para isso, necessita que o feedback do cliente seja o mais rápido possível.

[…] Um catalisador efetivo para o feedback do cliente é um protótipo operacional ou uma porção do sistema operacional. Assim, uma estratégia de desenvolvimento incremental deve ser instituída. […] Essa abordagem iterativa habilita o cliente a avaliar o incremento de software regularmente, fornecer o feedback necessário à equipe de software e influenciar as adaptações do processo feitas para acomodar o feedback […] (PRESSMAN, 2006, p. 61).

Com efeito, é possível notar nas afirmações de Pressman que a metodologia ágil mescla alguns processos das metodologias de Incremento e Prototipagem oriundos dos modelos tradicionais.

Segundo Fowler (2007, apud BORBOREMA, 2007), as duas principais diferenças entre as metodologias ágeis e as tradicionais são:

a) Adaptativas, ao invés de previsivas – as metodologias tradicionais são resistentes a mudanças devido à excedente documentação feita com antecedência. Em contrapartida, as metodologias ágeis conseguem ser mais flexíveis, pois ajustam seus requisitos durante o desenvolvimento do software.

b) Orientadas às pessoas, não aos processos – as metodologia ágeis não possuem processos rígidos que impõem o que as equipes devem ou não fazer. Muito pelo contrário, a equipe é estimulada a se envolver diretamente com o cliente e toma as decisões necessárias para melhor ajustar a equipe.

Segundo Teles (2006), algumas metodologias que seguem os princípios do Manifesto Ágil são: Scrum, Dynamic Systems Development Method (DSDM), Crystal Methods, Feature-Driven Development (FDD), Lean Development (LD), Extreme Programming e Adaptative Software Development. Dentre essas metodologias, esta monografia aborda como assunto principal a Extreme Programming, mais conhecida por XP, por ser uma das metodologias mais conhecidas atualmente tanto no Brasil quanto no exterior.

Continue lendo essa série de artigos sobre em Metodologia XP ( eXtreme Programming ) – Breve histórico da XP

Observação: Todos as referências serão creditadas no último artigo da série.