SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Extreme Programming
XP
by Vitor Castro
vitorcastro@me.com
sábado, 28 de setembro de 13
Problemas no desenvolvimento
de software: risco
Deslize de cronogramas
Projeto cancelado
O sistema “azeda”Taxas de erros
Negócio mal compreendido
Modificações no negócio
Falsa riqueza de funções
sábado, 28 de setembro de 13
sábado, 28 de setembro de 13
sábado, 28 de setembro de 13
O que é ?
sábado, 28 de setembro de 13
O que é XP ?
• Metodologia leve para times pequenos e
médios
• Principal atividade de um projeto de
software é a codificação
• Uso disciplinado das práticas-modelos
• Times de dois a dez programadores
sábado, 28 de setembro de 13
Por que o eXtreme ?
• Princípios e práticas do senso comum a
níveis eXtremos
• revisão de código
• testes
• simplicidade
• arquitetura
• interações curtas ...
sábado, 28 de setembro de 13
Por onde começar ?
sábado, 28 de setembro de 13
sábado, 28 de setembro de 13
Valores
• Comunicação
• Simplicidade
• Feedback
• Coragem
• Respeito
sábado, 28 de setembro de 13
Comunicação
sábado, 28 de setembro de 13
Simplicidade
• Qual a coisa mais simples que poderia
funcionar ?
• Simplicidade não é fácil.
sábado, 28 de setembro de 13
Feedback
• Utilização mais cedo possível do software
• Desenvolvedor para cliente e vice-versa.
• Feedback em todas as escalas de tempo
• minutos / dia / semana / mês
sábado, 28 de setembro de 13
Coragem
• Ex.:
• Contrato de escopo variado
• Assumir atraso e problemas
• Refatoração contínua
• Programação em par
sábado, 28 de setembro de 13
Respeito
• “Respeitar o ponto de vista do outro é
essencial para que um projeto de software
seja bem sucedido”
sábado, 28 de setembro de 13
Princípios
• Feedback rápido
• Simplicidade presumida
• Mudanças incrementais
• Aceitação a mudanças
• Alta qualidade
sábado, 28 de setembro de 13
Como aplicar ?
sábado, 28 de setembro de 13
usando as práticas !!!
sábado, 28 de setembro de 13
Práticas do XP
• Jogo de planejamento
• Entregas frequentes
• Metáfora
• Programação em
pares
• Propriedade coletiva
• Integração contínua
• Cliente presente
• Projeto simples
• Testes
• Refatoração
• Padrões de
codificação
• Stand up meeting
sábado, 28 de setembro de 13
Jogo de planejamento
• Escopo para a próxima versão
• Estimativas
• Priorização
• User Story
sábado, 28 de setembro de 13
Entregas frequentes
• Requisito de maior valor para o negócio
• Reduzir o tempo do ciclo de entregas
sábado, 28 de setembro de 13
Metáfora
• Ajuda a equipe e os envolvidos no
entendimento dos elementos básicos e
seus relacionamentos
sábado, 28 de setembro de 13
Programação em pares
• “Duas pessoas, uma máquina, um teclado e
um mouse”
sábado, 28 de setembro de 13
Propriedade coletiva
• “Todos são responsáveis pelo sistema
inteiro”
sábado, 28 de setembro de 13
Integração contínua
• O código é integrado e testado sempre.
sábado, 28 de setembro de 13
Cliente presente
• “Pessoa que realmente vai usar o sistema
quando estiver em produção”
sábado, 28 de setembro de 13
Projeto simples
• É aquele que:
• Executa todos os testes
• Não tem lógica duplicada
• Expressa todas as intenções importante para os
programadores
• Tem menor número possível de classes e
métodos
• “Implemente para hoje, projete para o amanhã”
sábado, 28 de setembro de 13
Teste
• Levar a atividade de Teste ao eXtremo
• Qualquer função que não tenha teste simplesmente não
existe
sábado, 28 de setembro de 13
Refatoração
• Melhoria do código sem alteração no
comportamento
sábado, 28 de setembro de 13
Padrões de codificação
• O time define a forma como vai
desenvolver (nomeclatura, padrões ...)
sábado, 28 de setembro de 13
Stand up meeting
sábado, 28 de setembro de 13
Papéis
• Programador
• Treinador (Coach)
• Tracker
• Testador
• Cliente
sábado, 28 de setembro de 13
Ciclo de vida
sábado, 28 de setembro de 13
“As peças individuais são simples.
A riqueza vem da interação entre
as partes” (Beck, 2004)
sábado, 28 de setembro de 13
Associação do XP com
SCRUM
sábado, 28 de setembro de 13
Referências
• http://www.extremeprogramming.org/
• Beck, K. Programação eXtrema (XP)
explicada - acolha as mudanças (2004)
• Sbrocco, J. Macedo, P. Métodologias Ágeis -
Engenharia de software sob medida (2012)
• Teles,V. Extreme Programming (2004)
sábado, 28 de setembro de 13
Referência das imagens
• http://www.threeriversinstitute.org/Extreme%20Programming%20in%20Pictures.htm
• http://www.oficinadanet.com.br/artigo/gerencia/extreme_programming_xp_em_2_minutos
• http://improveit.com.br/
• http://www.xpce.org/
• http://paraibacooperativo.wordpress.com/cooperativismo-duvidas-frequentes/
• http://desenvolvimentoagil.com.br/xp/praticas/refatoracao
• http://www.slideshare.net/luizclaudiosilva/praticas-geis-de-desenvolvimento-de-software-v3
• http://infortecsolutions.com.br/otimizacao-de-sites
• http://www.cafeagile.com.br/wp-content/uploads/2012/01/standup2.jpg
• http://www.devmedia.com.br/ferramentas-de-integracao-continua-tornando-o-trabalho-de-
equipes-mais-organizado-engenharia-de-software-7/11035
sábado, 28 de setembro de 13

Más contenido relacionado

Destacado (7)

Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
Agile User Experience
Agile User ExperienceAgile User Experience
Agile User Experience
 
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)
 
eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
eXtreme Programming (XP)
eXtreme Programming (XP)eXtreme Programming (XP)
eXtreme Programming (XP)
 

Similar a Extreme programming

Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalRafael Caceres
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Claudia Melo
 
introxp-180413013250.pdf
introxp-180413013250.pdfintroxp-180413013250.pdf
introxp-180413013250.pdfPedroLuis216164
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e PlanificaçõesPractice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e PlanificaçõesRogerio P C do Nascimento
 
Engenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentávelEngenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentávelFernando Pontes
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de TestesGUTS-RS
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrumEduardo Bregaida
 
Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Eduardo Bregaida
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGNeubio Ferreira
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
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)Rennan Martini
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"Cesar Romero
 

Similar a Extreme programming (20)

TDD e Refactoring
TDD e RefactoringTDD e Refactoring
TDD e Refactoring
 
Debito técnicos
Debito técnicosDebito técnicos
Debito técnicos
 
Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com Drupal
 
Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com Drupal
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)
 
introxp-180413013250.pdf
introxp-180413013250.pdfintroxp-180413013250.pdf
introxp-180413013250.pdf
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
E xtreme programming
E xtreme programmingE xtreme programming
E xtreme programming
 
Scrum - conceitos iniciais
Scrum - conceitos iniciaisScrum - conceitos iniciais
Scrum - conceitos iniciais
 
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e PlanificaçõesPractice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
Practice 4 :: Gestão de Projetos de SW OO :: Métricas, Estimação e Planificações
 
Engenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentávelEngenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentável
 
[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes[GUTS-RS] GUTS Talks - Automação de Testes
[GUTS-RS] GUTS Talks - Automação de Testes
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Treinamento Agile com scrum
Treinamento Agile com scrumTreinamento Agile com scrum
Treinamento Agile com scrum
 
Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2Treinamento Agile com Scrum - V2
Treinamento Agile com Scrum - V2
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
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)
 
TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"TDD com Código Legado - "Atualizado"
TDD com Código Legado - "Atualizado"
 

Más de Vitor Castro

Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Vitor Castro
 
Desafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaDesafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaVitor Castro
 
Arquitetura e design de software
Arquitetura e design de softwareArquitetura e design de software
Arquitetura e design de softwareVitor Castro
 
Produtividade máxima
Produtividade máximaProdutividade máxima
Produtividade máximaVitor Castro
 
Refatoração na prática
Refatoração na práticaRefatoração na prática
Refatoração na práticaVitor Castro
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Um pouco sobre agilidade
Um pouco sobre agilidadeUm pouco sobre agilidade
Um pouco sobre agilidadeVitor Castro
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?Vitor Castro
 
Otimizando scrum com kanban
Otimizando scrum com kanbanOtimizando scrum com kanban
Otimizando scrum com kanbanVitor Castro
 
Notas AgileBrazil 2011
Notas AgileBrazil 2011Notas AgileBrazil 2011
Notas AgileBrazil 2011Vitor Castro
 

Más de Vitor Castro (16)

Agilidade na Veia
Agilidade na VeiaAgilidade na Veia
Agilidade na Veia
 
Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017Desafios e aprendizados - Unifesspa 2017
Desafios e aprendizados - Unifesspa 2017
 
Desafios e aprendizados - Unifesspa
Desafios e aprendizados - UnifesspaDesafios e aprendizados - Unifesspa
Desafios e aprendizados - Unifesspa
 
Lider integral
Lider integralLider integral
Lider integral
 
Gamificar
GamificarGamificar
Gamificar
 
Arquitetura e design de software
Arquitetura e design de softwareArquitetura e design de software
Arquitetura e design de software
 
Produtividade máxima
Produtividade máximaProdutividade máxima
Produtividade máxima
 
Refatoração na prática
Refatoração na práticaRefatoração na prática
Refatoração na prática
 
Poder do hábito
Poder do hábitoPoder do hábito
Poder do hábito
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Um pouco sobre agilidade
Um pouco sobre agilidadeUm pouco sobre agilidade
Um pouco sobre agilidade
 
Debito tecnico
Debito tecnicoDebito tecnico
Debito tecnico
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?
 
Otimizando scrum com kanban
Otimizando scrum com kanbanOtimizando scrum com kanban
Otimizando scrum com kanban
 
Notas AgileBrazil 2011
Notas AgileBrazil 2011Notas AgileBrazil 2011
Notas AgileBrazil 2011
 
Refatoração
RefatoraçãoRefatoração
Refatoração
 

Extreme programming

  • 1. Extreme Programming XP by Vitor Castro vitorcastro@me.com sábado, 28 de setembro de 13
  • 2. Problemas no desenvolvimento de software: risco Deslize de cronogramas Projeto cancelado O sistema “azeda”Taxas de erros Negócio mal compreendido Modificações no negócio Falsa riqueza de funções sábado, 28 de setembro de 13
  • 3. sábado, 28 de setembro de 13
  • 4. sábado, 28 de setembro de 13
  • 5. O que é ? sábado, 28 de setembro de 13
  • 6. O que é XP ? • Metodologia leve para times pequenos e médios • Principal atividade de um projeto de software é a codificação • Uso disciplinado das práticas-modelos • Times de dois a dez programadores sábado, 28 de setembro de 13
  • 7. Por que o eXtreme ? • Princípios e práticas do senso comum a níveis eXtremos • revisão de código • testes • simplicidade • arquitetura • interações curtas ... sábado, 28 de setembro de 13
  • 8. Por onde começar ? sábado, 28 de setembro de 13
  • 9. sábado, 28 de setembro de 13
  • 10. Valores • Comunicação • Simplicidade • Feedback • Coragem • Respeito sábado, 28 de setembro de 13
  • 12. Simplicidade • Qual a coisa mais simples que poderia funcionar ? • Simplicidade não é fácil. sábado, 28 de setembro de 13
  • 13. Feedback • Utilização mais cedo possível do software • Desenvolvedor para cliente e vice-versa. • Feedback em todas as escalas de tempo • minutos / dia / semana / mês sábado, 28 de setembro de 13
  • 14. Coragem • Ex.: • Contrato de escopo variado • Assumir atraso e problemas • Refatoração contínua • Programação em par sábado, 28 de setembro de 13
  • 15. Respeito • “Respeitar o ponto de vista do outro é essencial para que um projeto de software seja bem sucedido” sábado, 28 de setembro de 13
  • 16. Princípios • Feedback rápido • Simplicidade presumida • Mudanças incrementais • Aceitação a mudanças • Alta qualidade sábado, 28 de setembro de 13
  • 17. Como aplicar ? sábado, 28 de setembro de 13
  • 18. usando as práticas !!! sábado, 28 de setembro de 13
  • 19. Práticas do XP • Jogo de planejamento • Entregas frequentes • Metáfora • Programação em pares • Propriedade coletiva • Integração contínua • Cliente presente • Projeto simples • Testes • Refatoração • Padrões de codificação • Stand up meeting sábado, 28 de setembro de 13
  • 20. Jogo de planejamento • Escopo para a próxima versão • Estimativas • Priorização • User Story sábado, 28 de setembro de 13
  • 21. Entregas frequentes • Requisito de maior valor para o negócio • Reduzir o tempo do ciclo de entregas sábado, 28 de setembro de 13
  • 22. Metáfora • Ajuda a equipe e os envolvidos no entendimento dos elementos básicos e seus relacionamentos sábado, 28 de setembro de 13
  • 23. Programação em pares • “Duas pessoas, uma máquina, um teclado e um mouse” sábado, 28 de setembro de 13
  • 24. Propriedade coletiva • “Todos são responsáveis pelo sistema inteiro” sábado, 28 de setembro de 13
  • 25. Integração contínua • O código é integrado e testado sempre. sábado, 28 de setembro de 13
  • 26. Cliente presente • “Pessoa que realmente vai usar o sistema quando estiver em produção” sábado, 28 de setembro de 13
  • 27. Projeto simples • É aquele que: • Executa todos os testes • Não tem lógica duplicada • Expressa todas as intenções importante para os programadores • Tem menor número possível de classes e métodos • “Implemente para hoje, projete para o amanhã” sábado, 28 de setembro de 13
  • 28. Teste • Levar a atividade de Teste ao eXtremo • Qualquer função que não tenha teste simplesmente não existe sábado, 28 de setembro de 13
  • 29. Refatoração • Melhoria do código sem alteração no comportamento sábado, 28 de setembro de 13
  • 30. Padrões de codificação • O time define a forma como vai desenvolver (nomeclatura, padrões ...) sábado, 28 de setembro de 13
  • 31. Stand up meeting sábado, 28 de setembro de 13
  • 32. Papéis • Programador • Treinador (Coach) • Tracker • Testador • Cliente sábado, 28 de setembro de 13
  • 33. Ciclo de vida sábado, 28 de setembro de 13
  • 34. “As peças individuais são simples. A riqueza vem da interação entre as partes” (Beck, 2004) sábado, 28 de setembro de 13
  • 35. Associação do XP com SCRUM sábado, 28 de setembro de 13
  • 36. Referências • http://www.extremeprogramming.org/ • Beck, K. Programação eXtrema (XP) explicada - acolha as mudanças (2004) • Sbrocco, J. Macedo, P. Métodologias Ágeis - Engenharia de software sob medida (2012) • Teles,V. Extreme Programming (2004) sábado, 28 de setembro de 13
  • 37. Referência das imagens • http://www.threeriversinstitute.org/Extreme%20Programming%20in%20Pictures.htm • http://www.oficinadanet.com.br/artigo/gerencia/extreme_programming_xp_em_2_minutos • http://improveit.com.br/ • http://www.xpce.org/ • http://paraibacooperativo.wordpress.com/cooperativismo-duvidas-frequentes/ • http://desenvolvimentoagil.com.br/xp/praticas/refatoracao • http://www.slideshare.net/luizclaudiosilva/praticas-geis-de-desenvolvimento-de-software-v3 • http://infortecsolutions.com.br/otimizacao-de-sites • http://www.cafeagile.com.br/wp-content/uploads/2012/01/standup2.jpg • http://www.devmedia.com.br/ferramentas-de-integracao-continua-tornando-o-trabalho-de- equipes-mais-organizado-engenharia-de-software-7/11035 sábado, 28 de setembro de 13