Extreme Programming (XP)
João Carlos Ottobboni
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.
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.
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
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.
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.
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.
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;
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;
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

Extreme programming (xp)

  • 1.
  • 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 ExtremeProgramming ● 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 ExtremeProgramming ● 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 planode 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 Ofuncionamento 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 omé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 dosbeneficios é 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 constantesde 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 clientedeve 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 variasreuniõ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 culturana 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 Paraapoiar 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 HardTools 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 HardTools 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éminú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 nosdados 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.