O documento discute o eXtreme Programming (XP), uma abordagem ágil para desenvolvimento de software. O XP enfatiza valores como feedback, comunicação e simplicidade, e práticas como programação em pares, testes guiados, refactoring e releases curtos. Apresenta os princípios, práticas e características do XP, quando ele deve e não deve ser utilizado, e exemplos de empresas que adotaram métodos ágeis.
6. Manifesto Ágil (2001).
● Indivíduos e interações entre eles mais que
processos e ferramentas;
Experimente Programação eXtrema
● Software em funcionamento mais que
documentação abrangente;
● Colaboração com o cliente mais que
negociação de contratos;
● Responder a mudanças mais que seguir um
plano.
12. O que é XP
XP é um processo de desenvolvimento de software
voltado para:
Experimente Programação eXtrema
● Projetos cujos requisitos são vagos e mudam com
frequência;
● Desenvolvimento de sistemas orientados a objeto;
● Equipes pequenas, preferencialmente até 12
desenvolvedores;
● Desenvolvimento incremental (ou iterativo), onde o
sistema começa a ser implementado logo no início do
projeto e vai ganhando novas funcionalidades ao
longo do tempo.
14. Desenvolvimento Tradicional
● Em cascata.
● Sequêncial.
Experimente Programação eXtrema
● Tenta mecanizar os
processos como uma
linha de produção.
● Ex.: CMMI; MPS.BR.
15. Desenvolvimento Ágil
● Em espiral.
● Iterativo.
Experimente Programação eXtrema
● Software é criado de
uma forma
incremental.
● Ex.: DSDM, Scrum,
FDD, ASD, XP,
Crystal Family, Lean.
16. Desenvolvimento Tradicional e Ágil
● Tradicional: custo de
uma alteração no
projeto aumenta
Experimente Programação eXtrema
durante o tempo.
● Ágil: custo de
mudança é
praticamente linear
ao longo do tempo.
17. Surgimento do eXtreme
Programming
● Ano de 1986.
● Kent Beck e Ward
Cunningham.
Experimente Programação eXtrema
● Trabalhavam na Tektronixs.
● Com a linguagem Smalltalk,
totalmente orientada à
objetos.
● Praticavam: refactoring,
programação em par,
mudanças rápidas, feedback
e testes constantes,
desenvolvimento iterativo.
18. Surgimento do eXtreme
Programming
● Em 1996, Kent Beck
foi chamado para
“socorrer” o projeto da
Experimente Programação eXtrema
folha de pagamento
da Chrysler, o C3. Foi
onde XP foi colocado
em prova, testado,
aprimorado e
batizado.
19. Valores do XP
Feedback Simplicidade
Experimente Programação eXtrema
Comunicação Coragem
21. Práticas do XP
● Cliente Presente ● Código Coletivo
● Jogo do ● Código Padronizado
Experimente Programação eXtrema
Planejamento ● Design Simples
● Stand Up Meeting ● Metáfora
● Programação em Par ● Ritmo Sustentável
● Desenvolvimento ● Integração Contínua
Guiado pelos Testes
● Releases Curtos
● Refactoring
22. Práticas do XP
Cliente Presente
● O cliente deve
participar e conduzir
o desenvolvimento a
Experimente Programação eXtrema
partir do feedback
que recebe do
sistema.
● Viabiliza a
comunicação direta
com a equipe.
23. Práticas do XP
Jogo do Planejamento
● Se dá no início de
cada iteração
(semanas) para
Experimente Programação eXtrema
priorizar as estórias
(cartões das
funcionalidades) que
serão desenvolvidas.
24. Práticas do XP
Stand Up Meeting
● Reunião em pé
realizada a cada
manhã para avaliar o
Experimente Programação eXtrema
trabalho do dia
anterior e priorizar o
que será
implementado no dia
que se inicia.
● Dura em torno de 10
minutos.
25. Práticas do XP
Programação em Par
● Permite que o código
seja revisado
permanentemente,
Experimente Programação eXtrema
enquanto é
construído.
● Excelente maneira de
distribuir
conhecimento entre a
equipe.
26. Práticas do XP
Desenvolvimento Guiado pelos
Testes
● Escreve-se classes
de testes para cada
funcionalidade antes
Experimente Programação eXtrema
de codificá-la.
● Cria-se somente
funcionalidades que
serão utilizadas.
● São armazenados
para testar o sistema
quando for
necessário.
27. Práticas do XP
Refactoring
● É o ato de alterar o
código sem afetar a
funcionalidade que
Experimente Programação eXtrema
ele implementa.
● Os testes unitários
são utilizados para
verificar se o sistema
continua funcionando.
28. Práticas do XP
Código Coletivo
● Os desenvolvedores
têm acesso a todas
as partes do código e
Experimente Programação eXtrema
podem modificá-lo
(refactoring) se
necessário, sem pedir
permissão a outras
pessoas.
29. Práticas do XP
Código Padronizado
● A equipe deve
estabelecer padrões
de codificação.
Experimente Programação eXtrema
● Identação de código;
● Comentários;
● Variáveis e métodos
estilo camelCase.
● Etc.
30. Práticas do XP
Design Simples
● Não criar
generalizações, ou
seja, não tente prever
Experimente Programação eXtrema
o futuro.
● Codificar o suficiente
para a funcionalidade
ser implementada.
31. Práticas do XP
Metáfora
● Metáforas têm o
poder de transmitir
idéias complexas de
Experimente Programação eXtrema
forma simples.
● Facilita a
comunicação entre a
equipe e o cliente.
32. Práticas do XP
Ritmo Sustentável
● Trabalhar com
satisfação até oito
horas por dia.
Experimente Programação eXtrema
● Evitar horas-extras.
● Não levar trabalho
para casa.
● Realizar uma coisa
de cada vez.
● Fim de semana para
lazer.
33. Práticas do XP
Integração Contínua
● Os pares devem
integrar seus códigos
com o restante do
Experimente Programação eXtrema
sistema diversas
vezes ao dia.
● Para assegurar que
ele continue
funcionando,
executam-se os
testes unitários em
busca de falhas.
34. Práticas do XP
Releases Curtos
● Release é um
conjunto reduzido de
funcionalidades que a
Experimente Programação eXtrema
equipe coloca em
produção
rapidamente,
geralmente em
meses, para o cliente
utilizar.
● O cliente não espera
o fim do projeto para
utilizar o sistema.
35. Características da Equipe
● Gerente de Projeto: é responsável pelos
assuntos administrativos do projeto.
Experimente Programação eXtrema
● Coach: é o responsável técnico do projeto.
● Analista de Teste: é responsável por ajudar o
cliente a escrever os testes de aceitação,
detectar defeitos no sistema.
● Redator Técnico: Ajuda a equipe de
desenvolvimento a documentar o sistema.
● Desenvolvedor: é a pessoa que analisa,
projeta e codifica o sistema.
36. Quando o XP não deve ser utilizado
● Sistema baseado em premiação indivídual;
● Contratos de escopo fechado;
Experimente Programação eXtrema
● Clientes que fazem questão de um grande
número de artefatos;
● Escritório não adequados às práticas;
● Empresa que não aceita mudanças;
● Falta de apoio da diretoria;
● Avaliação da cultura organizacional;