Neste artigo darei continuidade ao artigo do mês passado. Pudemos aprender no mês anterior que o XP pode nos proporcionar uma realidade diferente no âmbito de produzir softwares. Possui diferenças em relação a outros modelos, podendo ser aplicado a projetos de alto risco e com requisitos dinâmicos. Esta Metodologia se tornou um conjunto bem definido de regras e conseqüentemente vem ganhando um grande número de adeptos por oferecer condições para que os desenvolvedores respondam com eficiência a mudanças no projeto, mesmo estando em estágios finais do ciclo de vida do processo.
É interessante salientar que o XP deve ser aplicado junto com um grupo de desenvolvedores formado por uma equipe de 2 a 10 integrantes, devendo estar por dentro de todas as fases de desenvolvimento, sendo uma equipe bastante interessada e pró-ativa para assegurar a alta produtividade e o cliente sempre disponível para tirar as dúvidas e tomar as decisões certas.
Portanto para darmos continuidade ao artigo anterior falaremos um pouco mais de algumas práticas, dos papéis que os desenvolvedores desempenham no ciclo de produção do software, o ciclo de vida de um projeto e por final darei uma breve introdução a uma ferramenta que permite o planejamento e acompanhamento de equipes de desenvolvimento XP.
As Práticas
- Metáfora
O uso de metáforas é uma forma poderosa para manter a integridade conceitual de um sistema, uma forma de torná-lo mais fácil de ser utilizado. Um exemplo de uso eficaz de uma metáfora são as interfaces gráficas baseadas em janelas, pois elas representam uma forma de fácil compreensão por todos da equipe.
Outro exemplo de metáfora seria a forma que os desenvolvedores criam elementos dentro do computador para simular outros que existem regularmente fora dele. Por exemplo, a lixeira, a mesa de trabalho, pastas entre outras coisas que simulam elementos do mundo físico e seus respectivos comportamentos.
O XP procura explorar ao máximo a utilização de metáforas, para que clientes e desenvolvedores sejam capazes de esclarecer um vocabulário apropriado para o desenvolvimento do projeto, repleto de nomes representando elementos físicos com os quais os clientes estejam habituados em seu dia-a-dia, portanto levando uma compreensão de ambos os lados.
- Ritmo Sustentável
É freqüente em projetos de softwares a falta de tempo e a adoção de horas extras de trabalho para concluir uma tarefa, o XP evita estas abordagens utilizando a prática denominada Ritmo Sustentável.
Esta prática caracteriza-se em trabalhar com satisfação por no máximo oito horas por dia evitando horas extras tanto quanto possível, não levar trabalho para casa, realizar uma coisa de cada vez e ter o fim de semana para o lazer.
Em XP o uso de horas extras, por sua vez, se baseia na idéia subjacente de que os seres humanos possuem um comportamento linear e consciente, não se materializando na prática. Entende-se de comportamento linear como, por exemplo:
Se uma pessoa produz um Cadastro em oito horas de trabalho, quer dizer que em 16 horas ela produzirá duas telas de Cadastros?
Errado, é interessante relembrar que os seres humanos não são como máquinas, portanto não se comportam como tal, ou seja, produzem resultados indesejáveis em função da fadiga. O uso de horas extras produz alguns efeitos colaterais, tais como: Qualidade reduzida, Esgotamento pessoal, o uso ineficaz do tempo, entre outras coisas.
O gráfico abaixo nos mostra a produtividade líquida versus horas trabalhadas por semana.
Entende-se como Produtividade Líquida como: Trabalho menos tempo perdido em retrabalho.
![]() |
Figura 01: Gráfico de Produtividade x Horas trabalhadas por semana. |
O XP assegura que a equipe trabalhe apenas durante as horas regulamentares, as pressões do tempo, o uso de horas extras no final do projeto acarretará em retrabalho e resultados negativos.
Portanto quando estiver sobrecarregado não pense nisso como falta de tempo suficiente para resolver tal problema, pense na forma como tendo coisas demais para fazer.
Equipe de desenvolvimento
Em uma equipe de desenvolvimento de Extreme Programming possui diversos papéis desempenhados pelas pessoas, a seguir irei listar os tipos e descrever um pouco deles.
1-) Gerente de Projeto
É a pessoa responsável pelos assuntos administrativos do projeto, mantém um forte relacionamento com o cliente, deixando-o mais interativo com o projeto. Este relacionamento com o cliente é necessário para poder participar das atividades de desenvolvimento.
O gerente de Projeto filtra os assuntos não relevantes aos desenvolvedores e aspectos que só devam ser implementados em iterações futuras.
É interessante possui uma pessoa que acredite e conheça nos valores e práticas do XP, podendo assim cobrar de sua equipe.
2-) Coach
Responsável pelos assuntos técnicos do projeto. Recomenda-se que esta pessoa seja a com maior conhecimento do processo de desenvolvimento.
A tarefa do Coach é verificar o comportamento da equipe frente o processo XP, sinalizando os eventuais erros cometidos pela equipe.
3-) Analista de Teste
O papel desta pessoa seria de garantir a qualidade do sistema através de testes. Ele deve ajudar o cliente a escrever os casos de testes e no final de cada iteração verificar se o sistema atende todos os casos de testes. Às vezes ocorre também dele escrever a documentação do projeto.
A recomendação seria que esta pessoa não seja um desenvolvedor para evitar uma visão tendenciosa já que não conhece o código desenvolvido.
4-) Redator Técnico
Pessoa responsável em documentar o sistema. Papel importante, pois permite que os desenvolvedores dediquem uma fatia maior de tempo para o trabalho de codificação.
Esta pessoa deve estar em perfeita sintonia com o cliente e os desenvolvedores para que o código reflita em uma documentação correta.
5-) Desenvolvedor
Pessoa responsável em analisar, projetar e codificar o sistema. Importante salientar que em XP não existe diferença em analista, projetista e programador uma vez que em vários momentos do projeto o desenvolvedor estará exercendo alguma destas atividades.
Um fator importante em XP é que a tendência da equipe é de tornar uniforme suas habilidades, como por exemplo na prática denominada “Programação em Par”. Portanto é importante saber que existem níveis distintos de desenvolvedores, mas com o tempo esta hierarquia desaparecerá.
Ciclo de Vida
Depois de aprendermos um pouco dos conceitos em XP, como Valores e Práticas e conhecermos os membros de uma equipe de desenvolvimento, acompanharemos o Ciclo de Vida de um Software. Desta forma aprenderemos um pouco mais sobre esta Metodologia se tornando mais fácil de ser implementada em nossos projetos.
A seguir as fases:
- Exploração
- Planejamento
- Iterações para Liberação
- Produção
- Manutenção
- Morte
Exploração
Nesta etapa o cliente irá escrever as estórias, sendo que cada estória descreverá uma função adicionada ao projeto. A equipe se reúne e se familiariza com as técnicas, ferramentas, tecnologias e práticas que serão utilizadas para desenvolver o projeto.
É importante saber que neste momento as possíveis arquiteturas são exploradas para se construir um protótipo do sistema. A duração desta fase varia muito, ela dura o suficiente para que os programadores se familiarizem com o projeto.
Planejamento
No planejamento é determinada a prioridade das estórias, realizando um acordo das funções que irão constar na primeira liberação do sistema. Esta fase não deve ultrapassar duas semanas.
Iterações para Liberação
Nesta fase inclui várias iterações do sistema antes de sua primeira liberação, sendo que a programação que foi feita durante a fase de planejamento é quebrada em iterações menores, sendo que cada iteração leva de uma a quatro semanas para ser completada.
É importante ressaltar que a primeira iteração cria um sistema base com as principais estórias para que o cliente decida as que irão ser implementadas a cada iteração.
Produção
Na fase de Produção é onde são realizados os testes e as checagens do desempenho do sistema antes que seja entregue ao cliente. Também podem existir mudanças no software neste momento.
As idéias e sugestões são documentadas para implementação futura durante a fase de manutenção.
Manutenção
Depois da primeira liberação, o XP deve manter o sistema rodando e introduzir novas iterações ao decorrer do projeto.
A velocidade de manutenção pode desacelerar evitando erros no sistema em produção, podendo haver mudanças na equipe e em sua estrutura.
Morte
Nesta fase o cliente não possui mais estórias a serem implementadas, o sistema irá satisfazer as necessidades do cliente.
XPLANNER – Ferramenta Planejamento e Desenvolvimento
XPlanner é uma ferramenta de planejamento e acompanhamento de projetos para equipe XP. É uma ferramenta gratuita que pode ser baixada no seguinte site:
Abaixo algumas telas desta ferramenta que demonstra ser uma poderosa arma para desenvolvedores XP.
Ver Figura 02 e 03 para maiores detalhes.
![]() |
Figura 02: Controle de Iterações. |
![]() |
Figura 03: Controle de Iterações. |
Nas telas acima temos o clássico controle de iterações do projeto utilizando o XPlanner.
Neste artigo não entraremos em detalhes de sua instalação e utilização. Fica aí uma dica para quem quer explorar ainda mais a fundo a Metodologia XP utilizando um software gratuito para gerenciar os projetos e utilizar suas técnicas. Em artigos futuros abordarei esta ferramenta junto com exemplificações e utilizações no seu dia-a-dia.
Conclusão
Vimos neste artigo um pouco mais desta metodologia Ágil, a denominada Extreme Programming. Aprendemos mais algumas práticas e outras características como o Ciclo de vida do desenvolvimento de um Software.
Outros dados importantes são os papéis desempenhados pelos membros de uma equipe XP, que foram descritos também neste artigo.
O “XPlanner” demonstra ser uma ferramenta poderosa em projetos XP, além de ser gratuita. Uma dica interessante para quem quer aumentar seus estudos e testes utilizando esta metodologia ágil de programação.
Vou ficando por aqui, um forte abraço a todos e até o mês que vem!
Nenhum comentário:
Postar um comentário