Extreme Programming

Na última sexta-feira meu professor de DSI (Desenvolvimento em Sistemas de Informação) apresentou uma nova abordagem em desenvolvimento de software com a aula mais dinâmica que já tive. Trata-se da Extreme Programming (XP) .
Esta é uma nova metodologia de desenvolvimento de software (com cerca de 8 anos), voltada a interatividade com o cliente, ao trabalho em grupo e a dinâmica. Recomendada para desenvolvimento de softwares com requisitos vagos e que necessitem de constantes mudanças.
É baseada nas seguintes regras e práticas:
- Planejamento
- Problemas do usuário
- São escritos pelos clientes especificando o que o sistema deve fazer por eles;
- Estes Problemas assemelham-se ao uso de cenários, mas não limitados a descrever uma interface e são expressados em cerca de três sentenças escritas pelo cliente;
- Plano de Lançamento
- Após os Problemas serem escritos, encontros são realizados para para criar o Plano de Lançamento;
- Este Plano de Lançamento especifica que cartões serão implementados para cada lançamento e as datas destes lançamentos;
- Lançamentos Periódicos
- O Time de desenvolvimento deve liberar pequenas versões interativas aos clientes periodicamente;
- No próximo encontro os clientes expõe suas opiniões e satisfações sobre o projeto (Teste de Aceitação), o que permite ao time melhorar este de acordo com as necessidades do cliente;
- Velocidade do Projeto
- A Velocidade do Projeto é medida conforme quanto trabalho é realizado no projeto;
- Para medí-la, simplesmente adicione as estimativas de cada Problema resolvido durante a iteração;
- O projeto é dividido em Iterações
- Desenvolvimento iterativo adiciona agilidade ao processo de desenvolvimento;
- Divida o projeto em cerca de uma dúzia de iterações com uma a três semanas de duração;
- Mantenha essa duração constante durante o projeto, é esta constante que torna a medida de progresso e o planejamento simples e confiável na XP;
- Plano de Iteração
- Uma reunião é feita no início de cada Iteração para criar o plano daquela Iteração, os trabalhos de programação a serem realizados;
- Problemas são escolhidos pelo cliente para esta Iteração, a partir do Plano de Lançamento, na ordem do mais importante para cliente primeiro;
- O total de problemas é estimado de acordo com a velocidade do Projeto da última Iteração;
- Testes de Aceitação falhos e que precisem de reparos também são selecionados;
- Estes Problemas do Cliente e Testes de Aceitação são divididos em tarefas e anotados em Cartões;
- Enquanto os Problemas são descritos na linguagem do Cliente, os Cartões são escritos na Linguagem doProgramador;
- Programadores responsabilizam-se por estes Cartões e estimam quanto tempo suas tarefas levarão para serem completadas (geralmente 1 a 3 dias);
- Mude os Papéis
- Os papéis de cada membro do time de programação devem ser trocados constantemente para evitar desperdício de conhecimento e “codificação viciada” destes;
- Se apenas um membro é capaz de trabalhar em certa área, será um problema se esta pessoa sair do projeto ou você pode acabar com acumulo de tarefas para este;
- Reuniões em pé
- Uma reunião em pé é realizada diariamente;
- Comunicação entre o time de projeto é a intenção desta reunião;
- O conhecimento de cada um é dispersado e compartilhado, assim como uma visão geral do andamento do projeto;
- Reuniões em pé tentem a ser rápidas e dinâmicas, e impede que o time distraia-se com futilidades;
- “Conserte a XP quando ela quebrar”
- Nào dizemos ’se’ porque obviamente serão necessárias modificações e adaptações para cada projeto;
- Não exite em descartar as opções que não funcionarem e adicionar novas.
- Problemas do usuário
Estas são as práticas da fase de planejamento, não pretendo me extender aqui a ponto de descrever todas as fases, mas vou ressaltar alguns outros pontos importantes:
- Simplicidade
- Um projeto simples leva menos tempo para ser desenvolvido que um complexo;
- Sempre faça o mais simples possível que funcione;
- O Cliente está sempre disponível
- Um dos principais requerimentos das Programação XP é comunicação constante com o cliente, preferencialmente face a face;
- Não apenas para ajudar a equipe de projeto, mas sim como parte da própria equipe;
- Programação em duplas
- Toda a programação a ser incluída no projeto deve ser realizada por duas pessoas trabalhando juntas no mesmo computador;
- Programação em duplas aumenta a qualidade do software sem impacto no prazo de entrega.
É notavel na programação XP que suas práticas são voltadas muito mais para a programação do que para a documentação e planejamento do projeto. Isto pode causar um grande impacto sobre os tabus de que a documentação é até mais importantes que a programação em si. Obviamente a documentação não deve ser descartada, mas também pode ser realizada dinamicamente durante os encontros/reuniões, desde anotações simples até gravação das sessões.
O suporte também não fica prejudicado pela falta de documentação apropriada. Uma vez que o conhecimento sobre o projeto é difundido sobre a equipe, fica relativamente fácil realizar modificações e aprimoramentos.
A imagem a baixo é um diagrama interativo da metodologia de programação XP. Hospedado em http://www.extremeprogramming.org/, que também foi minha maior fonte para este artigo. Leitura recomendada…
Fontes: http://www.extremeprogramming.org, http://en.wikipedia.org/wiki/Extreme_programming, http://pt.wikipedia.org/wiki/Extreme_programming
Se você gostou deste artigo, inscreva-se em meu RSS feed!




Últimos Comentários