Acessar


Esqueceu a senha?
Cadastrar
 

Extreme Programming (XP)


A muito tempo a indústria de software vem passando por grandes transformações e novos desafios, entre eles desenvolver softwares com qualidade, no menor tempo possível e que atendam as necessidades dos clientes.

Com estes novos desafios a indústria de software passou a dar valor a algumas áreas da informática, como a engenharia de software e qualidade de software, com intuito de atender as exigências do mercado.

A indústria começou a utilizar metodologias de desenvolvimento de software, adotou métricas e padrões para alcançar níveis aceitáveis de qualidade, prever custos e prazos em seus projetos. Porém ainda são poucos os projetos que conseguem obter pleno sucesso em seu desenvolvimento, onde prazo e orçamento estabelecidos e as necessidades do cliente sejam realmente atendidas.

Pesquisa feitas pelo Standish Group International em 1994, um pouco antes da adoção de metodologia de desenvolvimento pelas indústrias, apontam que apenas 16, 2 % dos projetos de software atingiam sucesso (prazo, orçamento e funcionalidades atendidas). Em 2002 esta taxa havia subido para 34 %, ou seja, um aumento de 100 % em 8 anos. Mas estas taxas ainda se encontram muito aquém do esperado pelo mercado.

As metodologias utilizadas nos projetos pesquisados eram as mais variadas, podemos citar modelo em cascata, modelo iterativo e alguns com modelo em prototipação. Neste trabalho será utilizado o termo desenvolvimento tradicional para os projetos que se utilizem do modelo em cascata e todos os outros que se baseiam nele.

Analisando os motivos para a baixa taxa de sucesso dos projetos desenvolvidos com modelos tradicionais, cita-se os principais motivos e bastante comuns entre eles:

  • Tempo elevado entre cada fase do projeto, não acompanhando as mudanças de requisitos do projeto;

  • Falta de conhecimento por parte do cliente da sua real necessidade, dando margem às especulações dos desenvolvedores;

  • Forte linearidade no desenvolvimento do projeto;

Focando nas fragilidades do modelo tradicional, surgiram metodologias para desenvolvimento ágil de software. Cita-se algumas características destas metodologias:

  • Foco nas pessoas, não no processo, evitando especulações dos desenvolvedores;

  • Atender as reais necessidades do cliente, na velocidade e praticidade por ele desejada;

  • Ausência de linearidade no desenvolvimento do projeto;

  • O cliente aprender a suas reais necessidades durante o projeto e repassar esta novas necessidades a equipe de desenvolvimento;


XP é uma metodologia para desenvolvimento de software ágil, com qualidade e que atenda as necessidades do cliente. Alguns praticantes definem a XP como a prática e a perseguição da mais clara simplicidade, aplicado ao desenvolvimento de software. Uma metodologia voltada para projetos cujos requisitos mudem com freqüência, utilizem desenvolvimento orientado a objetos, equipes de até 12 desenvolvedores e desenvolvimento incremental.

A XP Busca o máximo de valor a cada dia de trabalho da equipe para o seu cliente. Em um curto espaço de tempo o cliente terá um produto que possa ser utilizado, podendo aprender com o mesmo e reavaliar se o que foi desenvolvido é realmente o desejado.

Por ser uma metodologia recente, a XP sofre mudanças em suas concepções e, portanto, é comum encontrar variações. A adaptação ao ambiente de desenvolvimento deve ser levada em conta, se um valor trouxer mais prejuízos do que benefícios é necessário relavaliar a utilização desta metodologia.

A XP é organizada em torno de um conjunto de práticas e valores que atuam perfeitamente para assegurar um alto retorno do investimento efetuado pelo cliente.

Por ser um processo de desenvolvimento novo e baseado em diversas premissas que contrariam o modelo tradicional, o XP exige que os desenvolvedores tenham coragem para:

  • Desenvolver software de forma incremental;

  • Manter o sistema simples;

  • Permitir que o cliente defina prioridades;

  • Fazer desenvolvedores trabalharem em pares:

  • Investir tempo em refactoring ;

  • Investir tempo em testes automatizados;

  • Estimar estórias na presença do cliente;

  • Expor código a todos os membros da equipe;

  • Integrar o sistema diversas vezes ao dia;

  • Adotar ritmo sustentável de desenvolvimento;

  • Abrir mão de documentos que servem como defesa;

  • Propor contratos de escopo variável;

  • Propor a adoção de um processo novo.

  • Assumir em relação ao cliente possíveis atrasos e problemas de implementação;

  • Colocar desenvolvedores e clientes frente a frente;

  • Implantar uma nova versão do sistema no cliente semanalmente;

  • Apostar em seus colaboradores aumentando suas responsabilidades;

  • Modelar e documentar apenas quando for de extrema necessidade.


Uma empresa ao utilizar este processo por completo, só estará agregando valor aos seus negócios e melhorando o ambiente de seus colaboradores e clientes, tratando-os como pessoas e parceiros.


Desenvolvimento Ágil

1.0

  • Python.org
  • Zope
  • Plone
  • Ubuntu
  • Debian
  • Python Brasil
  • Tchezope
  • Django Brasil