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

Extreme programming

  • 1.
    Extreme Programming XP by VitorCastro vitorcastro@me.com sábado, 28 de setembro de 13
  • 2.
    Problemas no desenvolvimento desoftware: 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 desetembro de 13
  • 4.
    sábado, 28 desetembro 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 oeXtreme ? • 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 desetembro de 13
  • 10.
    Valores • Comunicação • Simplicidade •Feedback • Coragem • Respeito sábado, 28 de setembro de 13
  • 11.
  • 12.
    Simplicidade • Qual acoisa mais simples que poderia funcionar ? • Simplicidade não é fácil. sábado, 28 de setembro de 13
  • 13.
    Feedback • Utilização maiscedo 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.: • Contratode escopo variado • Assumir atraso e problemas • Refatoração contínua • Programação em par sábado, 28 de setembro de 13
  • 15.
    Respeito • “Respeitar oponto 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 • Requisitode maior valor para o negócio • Reduzir o tempo do ciclo de entregas sábado, 28 de setembro de 13
  • 22.
    Metáfora • Ajuda aequipe 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 • “Todossão responsáveis pelo sistema inteiro” sábado, 28 de setembro de 13
  • 25.
    Integração contínua • Ocódigo é integrado e testado sempre. sábado, 28 de setembro de 13
  • 26.
    Cliente presente • “Pessoaque 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 aatividade 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 docó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 individuaissão simples. A riqueza vem da interação entre as partes” (Beck, 2004) sábado, 28 de setembro de 13
  • 35.
    Associação do XPcom 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