SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
Nécio de Lima Veras
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
licardino
 

Was ist angesagt? (20)

Gestão da Tecnologia da Informação - Atividade: Governança de TI
Gestão da Tecnologia da Informação - Atividade: Governança de TIGestão da Tecnologia da Informação - Atividade: Governança de TI
Gestão da Tecnologia da Informação - Atividade: Governança de TI
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Scrum
ScrumScrum
Scrum
 
eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Métodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - Introdução
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 

Andere mochten auch

Apresentação Da Disciplina Metodologias Ágeis Para Desenvolvimento De S...
Apresentação Da  Disciplina    Metodologias Ágeis Para  Desenvolvimento De  S...Apresentação Da  Disciplina    Metodologias Ágeis Para  Desenvolvimento De  S...
Apresentação Da Disciplina Metodologias Ágeis Para Desenvolvimento De S...
Marcos Cardoso
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
Marcos Cardoso
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Vitor Castro
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
Adilmar Dantas
 
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de ProjetosUma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
Giovani Elísio Silva
 

Andere mochten auch (20)

Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
Ruby on rails porque usar rails?!
Ruby on rails   porque usar rails?!Ruby on rails   porque usar rails?!
Ruby on rails porque usar rails?!
 
Lightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias ÁgeisLightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias Ágeis
 
Apresentação Da Disciplina Metodologias Ágeis Para Desenvolvimento De S...
Apresentação Da  Disciplina    Metodologias Ágeis Para  Desenvolvimento De  S...Apresentação Da  Disciplina    Metodologias Ágeis Para  Desenvolvimento De  S...
Apresentação Da Disciplina Metodologias Ágeis Para Desenvolvimento De S...
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Parear é um pouco mais que sentar ao lado
Parear é um pouco mais que sentar ao ladoParear é um pouco mais que sentar ao lado
Parear é um pouco mais que sentar ao lado
 
Curso Xp
Curso XpCurso Xp
Curso Xp
 
Xp - extreme programing
Xp - extreme programingXp - extreme programing
Xp - extreme programing
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Agile User Experience
Agile User ExperienceAgile User Experience
Agile User Experience
 
Padrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyPadrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e Strategy
 
Desenvolvimento de Software com Extreme Programming (XP)
Desenvolvimento de Software com Extreme Programming (XP)Desenvolvimento de Software com Extreme Programming (XP)
Desenvolvimento de Software com Extreme Programming (XP)
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de ProjetosUma abordagem às Metodologias Ágeis em Gerência de Projetos
Uma abordagem às Metodologias Ágeis em Gerência de Projetos
 
Computação Ubíqua e Pervasiva
Computação Ubíqua e PervasivaComputação Ubíqua e Pervasiva
Computação Ubíqua e Pervasiva
 

Ähnlich wie Extreme programming (xp)

Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
alexandre_malaquias
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de software
Jerônimo Medina Madruga
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
Roberto Brandini
 

Ähnlich wie Extreme programming (xp) (20)

Aula 03 - Metodologias Ágeis.pdf
Aula 03 - Metodologias Ágeis.pdfAula 03 - Metodologias Ágeis.pdf
Aula 03 - Metodologias Ágeis.pdf
 
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - KanbanMetodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
Metodologias Ágeis para Gestão e Planejamento de Projetos Scrum - XP - Kanban
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Feature Driven Development - FDD
Feature Driven Development - FDDFeature Driven Development - FDD
Feature Driven Development - FDD
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Métodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de softwareMétodos ágeis de desenvolvimento de software
Métodos ágeis de desenvolvimento de software
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Apresentação Metodologias Ágeis de desenvolvimento
Apresentação Metodologias Ágeis de desenvolvimento Apresentação Metodologias Ágeis de desenvolvimento
Apresentação Metodologias Ágeis de desenvolvimento
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Netshoes metodologia
Netshoes metodologiaNetshoes metodologia
Netshoes metodologia
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Extreme programming (xp)

  • 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.