2. O que é Extreme Programming ?
● Extreme Programming é a arte de maximizar a quantidade de software
que você não vai fazer.
● São métodos e formas de priorizar quais as partes mais importantes do
Projeto, e quem diz quais as partes importantes são os próprios clientes.
● De forma informal, podemos compará-lo como uma danç a de salão:
● Desenvolvedor é a dama;
● Cliente é o cavalheiro;
● Devem estar sempre juntos;
● Cliente conduz o desenvolvimento.
3. Timeline do Extreme Programming
● Origem década de 80 Kent Beck e Ward Cunningham
● 1996: C3 projeto iniciado folha de pagamento da Chrysler
● Outubro de 1998: Distributed Computing magazine article on the
ChryslerComprehensiveCompensation (C3) project.
● Setembro de 1999: "Extreme Programming Explained" (Extreme Programming
Explained Embrace Change) livro por KentBeck
● Dezembro de 1999: Primeira turma de "Xp Immersion", at Object Mentor, por
KentBeck, BobMartin, e RonJeffries
● 31 Dezembro de 1999: Yahoo XP grupo de discussão.
4. Timeline do Extreme Programming
● Junho de 2000: Primeira conferência internacional de XP, em Cagliari Sardinia.
● Setembro de 2000: "Extreme Programming Installed" livro por Jeffries,
Anderson, e Hendrickson
● Julho de 2001: Primeiro Universo XP, em Raleigh, Carolina do Norte
● Novembro 2004: "Extreme Programming Explained: Segunda Edição"
(Extreme Programming Explained Embrace Change Segunda Edição) livro por
Kent Beck, Cynthia Andres
5. Iteração
● O plano de iteração é a lista de histórias selecionadas para serem
implementadas dentro de uma iteração.
● Um “laço” de iteração do XP geralmente é curto e tem uma duração de no
máximo duas semanas.
● A definição de quais histórias entram num clico parte do cliente que define
de acordo com suas prioridades.
● Histórias muito complexas são retiradas do ciclo e repensadas para voltar
posteriormente.
6. Valores do XP
● Comunicação: Focada em reduzir a quantidade de documentos formais, e aumentar a
comunicação direta entre todas as pessoas envolvidas no projeto.
● Simplicidade: A XP sugere que o código seja feito da forma mais simples possível e que as
funcionalidades e requisitos sejam feitas apenas quando as mesmas se fizerem necessárias.
● Feedback: As respostas às decisões tomadas devem ser rápidas e visíveis. Todos devem ter, o
tempo todo, consciência do que está acontecendo.
● Coragem: Alterar um código em produção, sem causar bugs, com agilidade, exige muita
coragem e responsabilidade.
● Respeito: Todos têm sua importância dentro da equipe e devem ser respeitados e valorizados.
Isso mantém o trabalho energizado.
7. Papeis no XP
● Os papéis de um time no XP são formados por uma variedade de pessoas
com características e habilidades necessárias para o sucesso do projeto.
● Em geral os papeis não variam muito em relação aos outros processos ou
metodologias.
● Existem variações e diferentes referências sobre os papeis no XP. Estes
papeis até podem ser acumulados por mais de uma pessoa dentro do
time, porém deve se tomar cuidado.
8. Papeis no XP
● Dono do ouro: É o cliente que paga pelo desenvolvimento do projeto;
● Usuário ou cliente: Define os requisitos, executam os testes de aceitação
e usam o produto final.
● Gerente: Gerencia e acompanha o planejamento do projeto;
● Coach: É o técnico do time , orienta e mantem a disciplina das práticas
padrões da equipe;
9. Papeis no XP
● Testadores: Ajudam os clientes com a definição dos testes. Realizam os
testes no sistema;
● Desenvolvedores: Definem a arquitetura, realizam estimativas e
implementam o código;
● Tracker: Responsável por coletar as métricas do projeto. O tracker e
capaz de contar uma historia de iteração ao final da mesma, através dos
apontamentos que realizou e das informações que foram coletadas;
● Analistas: Ajudam o cliente na definição dos requisitos;
10. Práticas de XP
O funcionamento do XP e baseado em um conjunto de valores e práticas que são
divididas em organizacionais(circulo vermelho), equipe(circulo verde) e individuais.
11. Práticas de XP
● Jogo do Planejamento: São criadas historias que descrevem as funcionalidades a
serem implementadas e são definidas estimativas e prioridades.
● Releases Pequenos: Devem ser o menor possível, e conter os requisitos mais
importantes para o negócio.
● Metáfora: Oferece uma visão geral do sistema de forma simples, e que pode ser
compartilhada por desenvolvedores e clientes.
● Projeto Simples: Esta prática enfatiza que se deve concentrar em soluções
simples e bem estruturadas.
12. Práticas de XP
● Testes Constantes: Os teste em XP são feitos antes da programação. Existem
dois tipos de testes: teste de unidade e teste funcional.
● Refatoramento: São constantes melhorias no projeto do software visando melhorar
sua capacidade de se adaptar a mudanças.
● Programação em Pares: Possibilita que todos os membros da equipe tenha
conhecimento sobre diversas partes do sistema.
● Propriedade Coletiva do Código: Estimula toda a equipe a trabalhar juntos para a
melhoria do código.
13. Práticas de XP
● Integração Continua: Novas funcionalidades implementadas devem ser integradas
varias vezes ao dia.
● Semana de Quarenta Horas: Não é uma regra porem é aconselhável que a equipe
não deve trabalhar por mais de quarenta horas semanais, para não prejudicar a
qualidade do código.
● Cliente no Local: Deve ser integrar a equipe uma pessoa por parte do cliente, para
orientar e esclarecer duvidas sobre funcionalidades do sistema.
● Padrões de Codificação: Deve se padronizar o código, para que qualquer um
possa entender e modificar o código quando necessário.
14. Quando usar o método?
● Equipes com no máximo 12 integrantes;
● Clientes que estejam dispostos a se dedicar semanalmente pois requer
varias reuniões com os clientes;
● Ter um espaço físico onde é possível todos os envolvidos ficarem
próximos uns dos outros.
15. Vantagens
● Um dos beneficios é tornar o processo ágil e mais flexível. As praticas do
XP foram criadas para funcionarem juntas.
● Fornecem mais valor do que cada uma poderia fornecer individualmente.
● Analise prévia dos acontecimentos dentro do projeto, o que oferece
qualidade, confiança, datas de entrega e custos promissores.
● O XP é ideal para projetos em que o cliente não sabe exatamente o que
quer, pois os feedbacks constantes tornam possível as mudanças para
atender os requisitos de forma rápida.
16. Vantagens
● Entregas constantes de partes funcionais do software assim o cliente não
precisa esperar muito para ver o software funcionando.
● O cliente esta sempre por perto, resultando em uma produto final muito
próximo daquilo que ele deseja.
● Programação em dupla reduz o número de erros e aumenta a legibilidade
do código o que facilita manutenções futuras.
● Erros são encontrados em um estágio inicial, pois são realizados diversos
testes de diversas formas.
17. Desvantagens
● O cliente deve disponibilizar uma equipe para participar de todo o
processo de desenvolvimento do software.
● Existe uma perda de produtividade adotando programação em pares.
● Todos os envolvidos no projeto devem conhecer as técnicas e regras.
● Exige muito código para testes e a razão entre linhas de código de teste
para linhas de código de projeto deve ser, no minimo 2:1.
18. Desvantagens
● Requer varias reuniões com os clientes.
● Requer muita mudança cultural.
● A análise de requisitos informal pode não ser bem visto pelos clientes que
podem se sentir inseguros.
● A falta de documentação pode ser um problema em certos projetos.
19. Desvantagens
● Uma cultura na qual você e requisitado a trabalhar horas e horas para
provar seu “comprometimento com a empresa”, você não conseguira
executar o XP se estiver cansado.
● O espaço físico deve permitir a organização da equipe XP de modo que
todos fiquem próximos uns aos outros.
20. Ferramentas de Apoio
Para apoiar a adoção de princípios e práticas do XP existem uma serie de
ferramentas que podem ser adotas nos projetos de software:
● Temos Hard Tools que são ferramentas mais simples relacionadas com o
ambiente.
● Temos Soft Tools que são ferramentas de software que apoiam as
práticas.
21. Ambiente e Hard Tools
O ambiente é essencial para apoiar as práticas, para isso e necessário adequá-lo.
Podem ser utilizados uma série de gráficos de acompanhamento, murais e quadros
tornando o ambiente informativo.
22. Ambiente e Hard Tools
Um time ágil utiliza quadros para execução e acompanhamento do time. Neste quadro é
possível acompanhar o trabalho que está planejado, o que está em andamento e os que já estão
prontos. São conhecidos como quadros de Kanban. Existem variações de quadros de acordo com a
necessidade do time.
23. Soft Tools
Existem também inúmeros softwares para apoiar as praticas XP. Abaixo uma lista de
ferramentas práticas que são apoiadas, licença e o endereço do fornecedor.
24. Conclusão
Com base nos dados apresentados é necessário avaliar se é
viável ou não a utilização do XP. Muitas vezes o processo de adoção é
lento e complicado, mas com dedicação e disciplina pode-se atingir
resultados satisfatórios.