Professional Documents
Culture Documents
Desenvolvimento ágil
Fundamentos
Aplicações
Valores
Introdução
3 XP (Extreme Programming)
Foi criado no final da década de 90. É uma metodologia ágil voltada a equipes
pequenas e médias que produzem software baseados em requisitos vagos e
que mudam com rapidez. As principais diferenças entre o XP e outras
metodologias são feedbacks constantes e uma abordagem incremental. Para
isso é necessária uma comunicação entre os indivíduos.
Conforme Astels, a necessidade de entregar o software mais rápido fez com
que Kent Beck,
Wrad Cunningham e Ron Jeffries explorassem os extremos de determinadas
práticas de desenvolvimento. O primeiro projeto a usar a metodologia XP, foi o
C3 (Chrysler Comprehensive Compensation) da Chrysler, por um lado restrito e
por outro lado levado aos limites. Essa prática foi chamada de “acertar os
ponteiros em dez”. O resultado foi uma inovação no desenvolvimento de
software, chamada XP.
4 Fundamentos da XP
5 Aplicação da XP
7 Equipe XP
7.2 Coach
Pessoa responsável pelas questões técnicas do projeto, é necessário um
grande conhecimento nos processos de desenvolvimento, nos valores e
práticas do XP. Sua responsabilidade é verificar o comportamento da equipe,
sinalizando os eventuais erros.
Recomenda-se que esta pessoa não seja um desenvolvedor, para evitar uma
visão tendenciosa já que não conhece o código desenvolvido. O analista de
teste deve ter uma visão muito parecida com a do cliente e em muitos projetos
esta pessoa acaba exercendo o papel de redator técnico.
7.5 Desenvolvedor
Pessoa responsável em analisar, projetar e codificar o sistema. No XP não
existe diferença entre analista, projetista e programador uma vez que em vários
momentos do projeto o desenvolvedor estará exercendo alguma destas
atividades.
7.6 Rastreador
O rastreador faz estimativas de tempo e checa se se ajustou à realidade, isto é
uma questão de prática e feedback. Ele é responsável pela visão global do
andamento também, se durante uma iteração o que foi previsto será
executado, ou se é preciso modificar algo. A maior habilidade aqui é a
capacidade de coletar informações de que precisa sem perturbar o processo.
7.7 Treinador
É o responsável por chamar a atenção das pessoas quando estas estão se
desviando do processo do time. Todos no Time XP devem compreender a
aplicação, mas o treinador muito mais e profundamente. A necessidade deste
papel diminui proporcionalmente com o amadurecimento do time.
8 Princípios ou Práticas do XP
Para entender as formas que movem o projeto XP, é importante entender seus
princípios e suas práticas. Alguns desses princípios são apenas bom senso,
outros se tornam a base da maioria dos processos futuros de desenvolvimento
de software conforme apresentado a seguir:
8.2 Planejamento
A XP utiliza o planejamento para assegurar que a equipe de desenvolvimento
esteja trabalhando naquilo que gere o máximo de valor para o cliente sempre
determinando o escopo da próxima versão, combinando prioridades de negócio
e estimativas técnicas. O consultor se reúne com as equipes duas vezes por
semana. Nestas reuniões há uma permanente negociação de requisitos e
prazos. Este planejamento é feito várias vezes durante o projeto. É o momento
onde o cliente solicita as funcionalidades desejadas através de estórias, onde a
equipe estima o custo de cada estória e planeja as releases e as iterações.
O XP tem por objetivo gerar valor para o cliente ao longo do projeto, para isto o
software é desenvolvido de forma incremental, onde a cada entrega o cliente
possa utilizar o sistema e obter benefícios do mesmo. Estas entregas o XP
denomina como sendo releases , pequenos intervalos de tempo, máximo 2
meses, onde funcionalidades que gerem valor ao cliente sejam entregues.
8.5 Simplicidade
O sistema deve ser projetado da forma mais simples possível. A complexidade
extra é removida assim que detectada. Deve-se implementar apenas a
funcionalidade que foi solicitada. Mas deve-se ter atenção para não confundir
simplicidade com facilidade.
Umas das premissas do desenvolvimento conceitual é que o custo de uma
alteração no sistema cresce exponencialmente ao longo do projeto, com isto
tenta-se criar soluções genéricas preparando o sistema para futuras alterações.
Visa integrar e construir o sistema muitas vezes ao dia, todas as vezes que
uma tarefa tiver sido finalizada.
8.10 Refactoring
É um processo que permite a melhoria contínua da programação. Os
programadores reestruturam o sistema sem mudar seu comportamento, para
remover duplicação, melhorar a comunicação, simplificar ou adicionar
flexibilidade.
9 Vantagens e Desvantagens
9.1 Vantagens
9.2 Desvantagens
É freqüente acontecer bugs em todos os projetos de desenvolvimento de
software, e no XP não é diferente. Existem pontos fracos no uso dessa
metodologia, como:
● Não existe uma avaliação de riscos, devendo, portanto implementar uma
análise e estratégias que buscam diminuir os erros.
● A análise de requisitos é informal e com isso pode não ser bem vista
pelos clientes, que poderão se sentir inseguros quanto ao bom
funcionamento do sistema.
● Refatoração do código pode ser vista como irresponsabilidade e
incompetência, pois, não existe uma preocupação formal na utilização
do código.
● A falta de documentação é característica do processo XP, pois, o
mesmo não dá muita ênfase em burocracias (documentos, formulários,
processos, controles rígidos, etc.).
● Sendo, portanto, importante a elaboração de documentos e diagramas
que facilitem no entendimento e identificação do problema.
● Além dessas desvantagens, existem algumas situações em que não é
indicado o uso do XP conforme apresentado a seguir:
● A maior barreira para o sucesso de um projeto XP é a cultura
empresarial. Qualquer negócio que gerencie projetos tentando apontar o
carro para a direção certa logo de cara terá conflitos com o time que
insiste em ir acertando a direção continuamente.
● Outra cultura que não contribui para o XP é aquela na qual você é
requisitado a trabalhar horas e mais horas para provar o seu
“comprometimento com a empresa”. Você não consegue executar o XP
se estiver cansado. Se aquilo que o seu time produz trabalhando em
velocidade máxima não é suficiente para a sua empresa então o XP não
é a solução.
● E existe também uma barreira tecnológica para o XP é um ambiente no
qual é necessário um longo tempo para se obter feedback. Por exemplo,
se o seu sistema leva 24 horas para compilar e linkar, será difícil
integrar, compilar e testar várias vezes ao dia.
10 Conclusão