SlideShare a Scribd company logo
1 of 30
Download to read offline
Extreme ProgrammingXPSeminário de Engenharia de SoftwareProf. Luiz Alberto Ferreira GomesAlunos: Fernando Henrique CândidoJaffer dos Santos VeroneziJoão Paulo FernandesPUC-MINAS Campus Poços de Caldas-MG
O que é Extreme Programming? 
Metodologia ágil, que visa um rápido desenvolvimento, atende as reais necessidades do cliente e, ainda, permite modificações, á medida que novas necessidades apareçam; 
Criada por Kent Beck em 1996; 
Ágil ≠Rápido 
Ágil = Adaptativo
Valores do XP 
O Extreme Programmingdetém de valores fundamentais que sustentam as boas práticas de desenvolvimento de sistema; 
Esse valores são as diretrizes que definem as atitudes da equipe e as principais prioridades da metodologia;
Feedback 
O feedback é importante para qualquer processo de desenvolvimento, principalmente na XP; 
O diferencial da XP está no tempo de execução desse processo, uma vez que possui contato incessante com o cliente esse retorno é quase que imediato;
Comunicação 
É a chave para um desenvolvimento rápido e com a satisfação do cliente; 
A comunicação na XP é realizada com foco na simplicidade, em vez de extensos documentos escritos, é utilizada uma comunicação face a face, sempre que possível;
Simplicidade 
Significa que o software é desenvolvido usando a forma mais simples possível de design e construção, o que permite eliminar os elementos desnecessários na construção de software e facilitar modificações futuras; 
Esse valor segue a regra que diz “você não vai precisar”, uma funcionalidade só é adicionada quando realmente for necessária;
Coragem 
É preciso ter coragem para implementar uma série de inovações no processo de desenvolvimento como: desenvolver software de forma incremental, permitir que o cliente defina prioridades, fazer desenvolvedores trabalhar em par, modelar e documentar apenas quando for necessário;
Princípios ou Práticas da XP 
São as atividades seguidas pela equipe XP durante o processo de desenvolvimento de um sistema;
Envolvimento do Cliente 
No XP a presença do cliente é essencial no dia-a- dia do projeto, pois ele é a pessoa mais apta a sanar dúvidas dos desenvolvedores;
SmallRelease –Pequenas Versões 
É a elaboração de pequenas versões funcionais do sistema e liberação ao cliente;
Integração Contínua 
É a realização da integração de novas funcionalidades, ao sistema, em curtos espaços de tempo, se possível, podem ser realizados até diversas vezes ao dia;
Refactoring 
É a melhoria e padronização de códigos, esta prática tende a alterar todo o código duplicado, ilegível, mal codificado, lento e sem padronização dentro do projeto;
Código Coletivo 
Não existe uma pessoa responsável por uma parte do código, todos os desenvolvedores tem acesso e total liberdade para alterá-lo; 
Essa prática contribui para uma maior revisão do código;
Design Simples 
É importante que o projeto seja desenvolvido da forma mais simples, com códigos simples, que atendam a necessidade e possíveis alterações do cliente;
Metáfora 
Objetivo é facilitar a comunicação dentro do projeto, através de comparações e analogias com um determinado assunto em questão; 
Essa prática traduz as palavras do cliente para uma melhor compreensão dentro do projeto;
Stand upmeeting 
Stand upmeeting ou Reunião em pé, essas reuniões são realizadas dessa forma para que não se perca o foco no assunto abordado e para evitar que as reuniões se alonguem;
Ritmo sustentável 
Para garantir que a equipe esteja sempre concentrada e menos propicia à falhas, o XP abomina a prática de trabalhos exaustivos, que desrespeite os limites físicos de cada integrante da equipe;
Jogo do Planejamento 
É o momento usado para reunir desenvolvedores e cliente para priorizar funcionalidades e assegurar que a equipe esteja trabalhando naquilo que gere o máximo de valor para o cliente;
Programação em Par 
Baseia-se em um código implementado por duas pessoas trabalhando juntas em um único computador;
Desenvolvimento guiado por testes -TDD 
No XP para cada código implementado deve existir um teste automatizado; 
A prática do TDD conta com os testes de unidade e teste de aceitação;
Documentação do Projeto 
Não é uma prática primordial no modelo XP, a Extreme Programmingfoi projetada para realizar comunicação face a face e não por documentação escrita; 
Defende a ideia de menos burocracia e mais conversa eficaz no encontro com a equipe;
Contrato de escopo 
De acordo com Kent Beck, no contrato dos projetos XP, são definidos previamente o tempo, custos, qualidade e um escopo que indica o que será feito, como no desenvolvimento tradicional; 
A diferença do XP está que ele não engessa o escopo em um contrato assinado no início do projeto, mas sim negocia as etapas do projeto a medida que estas evoluam;
Desvantagens da XP 
Membros individuais da equipe podem não ter personalidade adequada para interagir bem com o outros membros da equipe;
Desvantagens da XP 
Representante do cliente acoplado ao projeto; 
Membros experientes dificilmente aceitariam tal tarefa; 
Dificuldade em encontrar um representante; 
Alternativa 
Definir uma especificação de requisitos concisa;
Desvantagens da XP 
Programação em pares 
Pode gerar aborrecimentos (programadores de níveis diferentes), programa sozinho favorece a criatividade; 
Alternativa 
Utilizar programação mútua (um programador garante a qualidade do software do outro e vice-versa);
Desvantagens da XP 
Falta de documentação 
Dificulta o uso e a manutenção do código; 
Muito centrado no código; 
Alternativa 
Automatizar o processo de documentação; 
Ex: Utilizando XML;
Quando não usar XP 
Cultura 
A equipe já está organizada e trabalhando em um modelo tradicional de desenvolvimento; 
Tamanho da equipe 
OXP preza por trabalhar com uma equipe pequena;
Quando não usar XP 
Tecnologia 
Não é aconselhável usar XP quando a tecnologia não permite escrever casos de teste, quando o feedback é demorado e quando não incorpora facilmente as mudanças; 
Cliente 
Para aplicação do XP é imprescindível que o cliente esteja presente e disponível para esclarecimento de dúvidas no desenrolar do projeto;
Conclusões 
Metodologia que requer disciplina; 
Quando uma prática não é bem realizada pode gerar efeito cascata; 
São mais adequados para desenvolvimento de sistemas para pequenas e médias empresas, não sendo tão adequados para sistema de larga escala ou críticos;
Referências bibliográficas 
Sommerville, Ian. Engenharia de Software 8ª ed. Person Education-Brasil 
Beck, Kent. Programação Extrema (XP) . Bookman, 2004 
< http://desenvolvimentoagil.com.br/xp/ >. Acessado em 03 maio 2014. 
< http://pt.slideshare.net/DanielBrando3/extreme-programming-xp-resumo > Acessado em 03 maio 2014. 
< http://www.extremeprogramming.org/ > Acessado em 03 maio 2014. 
< http://www.cin.ufpe.br/~gamr/FAFICA/Desenvolvimento%20de%20sistemas/XP.pdf > Acessado em 03 maio 2014.

More Related Content

What's hot

1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais ok
Marcos Morais de Sousa
 

What's hot (20)

Gestao agil de projetos
Gestao agil de projetosGestao agil de projetos
Gestao agil de projetos
 
Papeis Ágeis - uma proposta operacional Scrum
Papeis Ágeis - uma proposta operacional ScrumPapeis Ágeis - uma proposta operacional Scrum
Papeis Ágeis - uma proposta operacional Scrum
 
Metodologia agil scrum
Metodologia agil scrumMetodologia agil scrum
Metodologia agil scrum
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias Ágeis
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Seminário - Scrum , Kaban e XP
Seminário - Scrum , Kaban e XPSeminário - Scrum , Kaban e XP
Seminário - Scrum , Kaban e XP
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Sistemas Computacionais Aula 05 - Tipos de Sistemas de Informação, Exemplos d...
Sistemas Computacionais Aula 05 - Tipos de Sistemas de Informação, Exemplos d...Sistemas Computacionais Aula 05 - Tipos de Sistemas de Informação, Exemplos d...
Sistemas Computacionais Aula 05 - Tipos de Sistemas de Informação, Exemplos d...
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
 
Perfil profissional ti
Perfil profissional tiPerfil profissional ti
Perfil profissional ti
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais ok
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Gerenciamento de Projetos - Aula01 - Uma Introdução ao Gerenciamento de Projetos
Gerenciamento de Projetos - Aula01 - Uma Introdução ao Gerenciamento de ProjetosGerenciamento de Projetos - Aula01 - Uma Introdução ao Gerenciamento de Projetos
Gerenciamento de Projetos - Aula01 - Uma Introdução ao Gerenciamento de Projetos
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 

Similar to Extreme Programming (XP) Metodologia Ágil

Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Elisangela Paulino
 
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
 
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
 

Similar to Extreme Programming (XP) Metodologia Ágil (20)

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)
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Metodos ageis
Metodos ageisMetodos ageis
Metodos ageis
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
O uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de softwareO uso de metodos ageis no desenvolvimento de software
O uso de metodos ageis no desenvolvimento de software
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
 
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
Analise de gerenciamento_de_projeto_de_software_utilizando_metodologia_agil_x...
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
 
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
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
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
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
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
 
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
 
Extreming Programming XP
Extreming Programming XPExtreming Programming XP
Extreming Programming XP
 

More from Jaffer Veronezi (6)

A Análise de Negócios
A Análise de NegóciosA Análise de Negócios
A Análise de Negócios
 
ASPECTOS DA ENGENHARIA DE REQUISITOS
ASPECTOS DA ENGENHARIA DE REQUISITOSASPECTOS DA ENGENHARIA DE REQUISITOS
ASPECTOS DA ENGENHARIA DE REQUISITOS
 
Proposta de um modelo de escalonamento de metodologia ágil para grandes organ...
Proposta de um modelo de escalonamento de metodologia ágil para grandes organ...Proposta de um modelo de escalonamento de metodologia ágil para grandes organ...
Proposta de um modelo de escalonamento de metodologia ágil para grandes organ...
 
Gerenciando um Projeto
Gerenciando um ProjetoGerenciando um Projeto
Gerenciando um Projeto
 
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
 
Processamento Paralelo exemplo do Crivo de Erstótenes Paralelo e Sequencial
Processamento Paralelo exemplo do Crivo de Erstótenes Paralelo e SequencialProcessamento Paralelo exemplo do Crivo de Erstótenes Paralelo e Sequencial
Processamento Paralelo exemplo do Crivo de Erstótenes Paralelo e Sequencial
 

Extreme Programming (XP) Metodologia Ágil

  • 1. Extreme ProgrammingXPSeminário de Engenharia de SoftwareProf. Luiz Alberto Ferreira GomesAlunos: Fernando Henrique CândidoJaffer dos Santos VeroneziJoão Paulo FernandesPUC-MINAS Campus Poços de Caldas-MG
  • 2. O que é Extreme Programming? Metodologia ágil, que visa um rápido desenvolvimento, atende as reais necessidades do cliente e, ainda, permite modificações, á medida que novas necessidades apareçam; Criada por Kent Beck em 1996; Ágil ≠Rápido Ágil = Adaptativo
  • 3. Valores do XP O Extreme Programmingdetém de valores fundamentais que sustentam as boas práticas de desenvolvimento de sistema; Esse valores são as diretrizes que definem as atitudes da equipe e as principais prioridades da metodologia;
  • 4. Feedback O feedback é importante para qualquer processo de desenvolvimento, principalmente na XP; O diferencial da XP está no tempo de execução desse processo, uma vez que possui contato incessante com o cliente esse retorno é quase que imediato;
  • 5. Comunicação É a chave para um desenvolvimento rápido e com a satisfação do cliente; A comunicação na XP é realizada com foco na simplicidade, em vez de extensos documentos escritos, é utilizada uma comunicação face a face, sempre que possível;
  • 6. Simplicidade Significa que o software é desenvolvido usando a forma mais simples possível de design e construção, o que permite eliminar os elementos desnecessários na construção de software e facilitar modificações futuras; Esse valor segue a regra que diz “você não vai precisar”, uma funcionalidade só é adicionada quando realmente for necessária;
  • 7. Coragem É preciso ter coragem para implementar uma série de inovações no processo de desenvolvimento como: desenvolver software de forma incremental, permitir que o cliente defina prioridades, fazer desenvolvedores trabalhar em par, modelar e documentar apenas quando for necessário;
  • 8. Princípios ou Práticas da XP São as atividades seguidas pela equipe XP durante o processo de desenvolvimento de um sistema;
  • 9. Envolvimento do Cliente No XP a presença do cliente é essencial no dia-a- dia do projeto, pois ele é a pessoa mais apta a sanar dúvidas dos desenvolvedores;
  • 10. SmallRelease –Pequenas Versões É a elaboração de pequenas versões funcionais do sistema e liberação ao cliente;
  • 11. Integração Contínua É a realização da integração de novas funcionalidades, ao sistema, em curtos espaços de tempo, se possível, podem ser realizados até diversas vezes ao dia;
  • 12. Refactoring É a melhoria e padronização de códigos, esta prática tende a alterar todo o código duplicado, ilegível, mal codificado, lento e sem padronização dentro do projeto;
  • 13. Código Coletivo Não existe uma pessoa responsável por uma parte do código, todos os desenvolvedores tem acesso e total liberdade para alterá-lo; Essa prática contribui para uma maior revisão do código;
  • 14. Design Simples É importante que o projeto seja desenvolvido da forma mais simples, com códigos simples, que atendam a necessidade e possíveis alterações do cliente;
  • 15. Metáfora Objetivo é facilitar a comunicação dentro do projeto, através de comparações e analogias com um determinado assunto em questão; Essa prática traduz as palavras do cliente para uma melhor compreensão dentro do projeto;
  • 16. Stand upmeeting Stand upmeeting ou Reunião em pé, essas reuniões são realizadas dessa forma para que não se perca o foco no assunto abordado e para evitar que as reuniões se alonguem;
  • 17. Ritmo sustentável Para garantir que a equipe esteja sempre concentrada e menos propicia à falhas, o XP abomina a prática de trabalhos exaustivos, que desrespeite os limites físicos de cada integrante da equipe;
  • 18. Jogo do Planejamento É o momento usado para reunir desenvolvedores e cliente para priorizar funcionalidades e assegurar que a equipe esteja trabalhando naquilo que gere o máximo de valor para o cliente;
  • 19. Programação em Par Baseia-se em um código implementado por duas pessoas trabalhando juntas em um único computador;
  • 20. Desenvolvimento guiado por testes -TDD No XP para cada código implementado deve existir um teste automatizado; A prática do TDD conta com os testes de unidade e teste de aceitação;
  • 21. Documentação do Projeto Não é uma prática primordial no modelo XP, a Extreme Programmingfoi projetada para realizar comunicação face a face e não por documentação escrita; Defende a ideia de menos burocracia e mais conversa eficaz no encontro com a equipe;
  • 22. Contrato de escopo De acordo com Kent Beck, no contrato dos projetos XP, são definidos previamente o tempo, custos, qualidade e um escopo que indica o que será feito, como no desenvolvimento tradicional; A diferença do XP está que ele não engessa o escopo em um contrato assinado no início do projeto, mas sim negocia as etapas do projeto a medida que estas evoluam;
  • 23. Desvantagens da XP Membros individuais da equipe podem não ter personalidade adequada para interagir bem com o outros membros da equipe;
  • 24. Desvantagens da XP Representante do cliente acoplado ao projeto; Membros experientes dificilmente aceitariam tal tarefa; Dificuldade em encontrar um representante; Alternativa Definir uma especificação de requisitos concisa;
  • 25. Desvantagens da XP Programação em pares Pode gerar aborrecimentos (programadores de níveis diferentes), programa sozinho favorece a criatividade; Alternativa Utilizar programação mútua (um programador garante a qualidade do software do outro e vice-versa);
  • 26. Desvantagens da XP Falta de documentação Dificulta o uso e a manutenção do código; Muito centrado no código; Alternativa Automatizar o processo de documentação; Ex: Utilizando XML;
  • 27. Quando não usar XP Cultura A equipe já está organizada e trabalhando em um modelo tradicional de desenvolvimento; Tamanho da equipe OXP preza por trabalhar com uma equipe pequena;
  • 28. Quando não usar XP Tecnologia Não é aconselhável usar XP quando a tecnologia não permite escrever casos de teste, quando o feedback é demorado e quando não incorpora facilmente as mudanças; Cliente Para aplicação do XP é imprescindível que o cliente esteja presente e disponível para esclarecimento de dúvidas no desenrolar do projeto;
  • 29. Conclusões Metodologia que requer disciplina; Quando uma prática não é bem realizada pode gerar efeito cascata; São mais adequados para desenvolvimento de sistemas para pequenas e médias empresas, não sendo tão adequados para sistema de larga escala ou críticos;
  • 30. Referências bibliográficas Sommerville, Ian. Engenharia de Software 8ª ed. Person Education-Brasil Beck, Kent. Programação Extrema (XP) . Bookman, 2004 < http://desenvolvimentoagil.com.br/xp/ >. Acessado em 03 maio 2014. < http://pt.slideshare.net/DanielBrando3/extreme-programming-xp-resumo > Acessado em 03 maio 2014. < http://www.extremeprogramming.org/ > Acessado em 03 maio 2014. < http://www.cin.ufpe.br/~gamr/FAFICA/Desenvolvimento%20de%20sistemas/XP.pdf > Acessado em 03 maio 2014.