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?

Treinamento de Scrum
Treinamento de ScrumTreinamento de Scrum
Treinamento de ScrumLuiz Duarte
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Annelise Gripp
 
Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de bananaejedelmal
 
Prototipagem
PrototipagemPrototipagem
Prototipagemjwainer
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisDaniel Ferreira
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
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
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Cloves da Rocha
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareAragon Vieira
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilJaffer Veronezi
 

Was ist angesagt? (20)

Treinamento de Scrum
Treinamento de ScrumTreinamento de Scrum
Treinamento de Scrum
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!
 
Fdd em uma casca de banana
Fdd em uma casca de bananaFdd em uma casca de banana
Fdd em uma casca de banana
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Comparativo entre Processos Ágeis
Comparativo entre Processos ÁgeisComparativo entre Processos Ágeis
Comparativo entre Processos Ágeis
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
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)
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Scrum em 15 minutos
Scrum em 15 minutosScrum em 15 minutos
Scrum em 15 minutos
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Metodologia SCRUM
Metodologia SCRUMMetodologia SCRUM
Metodologia SCRUM
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 
Extreme Programming XP
Extreme Programming XPExtreme Programming XP
Extreme Programming XP
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Scrum
ScrumScrum
Scrum
 

Andere mochten auch

Lightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias ÁgeisLightning Talk- Requisitos em Metodologias Ágeis
Lightning Talk- Requisitos em Metodologias ÁgeisFernanda Rabello
 
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 SoftwareMarcos Cardoso
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteAislan Fernandes
 
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 ladoMichel Cordeiro
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingVitor Castro
 
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 StrategyJoão Carlos Ottobboni
 
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)Fernando Kenji Kamei
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de SoftwareAdilmar 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 ProjetosGiovani 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)

Aula 03 - Metodologias Ágeis.pdf
Aula 03 - Metodologias Ágeis.pdfAula 03 - Metodologias Ágeis.pdf
Aula 03 - Metodologias Ágeis.pdfDaniloPereira341965
 
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 - KanbanMatheus Costa
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingMarcelo Láias
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme ProgrammingDenis L Presciliano
 
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 ÁgilRebecca Betwel
 
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 Softwarealexandre_malaquias
 
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 FidelixCris Fidelix
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMLucas Vinícius
 
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 softwareJerônimo Medina Madruga
 
Apresentação Metodologias Ágeis de desenvolvimento
Apresentação Metodologias Ágeis de desenvolvimento Apresentação Metodologias Ágeis de desenvolvimento
Apresentação Metodologias Ágeis de desenvolvimento carlos Alberto
 
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 softwareRoberto Brandini
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumRafael Souza
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no NubankLetticia Nicoli
 

Ä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
 
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
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no Nubank
 

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.