SlideShare a Scribd company logo
1 of 31
Download to read offline
Rafael Recalde Caceres


  Estudo da Aplicação de Extreme
Programming no Desenvolvimento
          Distribuído de Software
Introdução
●   Motivação
    –   Busca de técnicas para reduzir os custos
    –   Tornar o desenvolvimento mais produtivo
    –   Reduzir distâncias e melhorar a comunicação
        em equipes distribuídas
Introdução
●   Justificativas
    –   Ambiente de negócios mutável
    –   Como gerenciar equipes ágeis distribuídas?
    –   Como gerenciar imprevisibilidade?
Introdução
●   Objetivos
    –   Estudar metodologias ágeis;
    –   Estudar o desenvolvimento distribuído de
        software (DDS);
    –   Analisar os efeitos do uso de metodologias
        ágeis no desenvolvimento distribuído de
        software;
Introdução
●   Roteiro
    –   Desenvolvimento de Software
    –   Extreme Programming
    –   Desenvolvimento Distribuído de Software
    –   Combinado Desenvolvimento Distribuído de
        Software e Métodos Ágeis
    –   Conclusão
Desenvolvimento de Software
●   Metodologias de Desenvolvimento
    –   Estudo dos métodos
    –   Técnica de como fazer
    –   Conjunto de Tarefas
         ●   comunicação, análise de requisitos, modelagem
             de projeto, construção de programas, testes e
             manutenção
Desenvolvimento de Software
●   O Caos
    –   Codifica/corrige
    –   Crise do Software
    –   CHAOS Report
         ●   15% dos projetos falha totalmente
         ●   51% estouram orçamento ou cronograma
         ●   apenas 34% atingem sucesso
19% das funcionalidades são raramente usadas

45% das funcionalidades nunca são usadas
Desenvolvimento de Software
●   Metodologias Tradicionais
    –   Modelo em Cascata
         ●   Mais famoso e mais antigo e mais utilizado
         ●   Assume que a engenharia de software é igual a
             outras engenharias
         ●   Linear, especialista, com foco na execução e
             maximização da produção
         ●   Reconhecidamente ineficaz
Desenvolvimento de Software
●   Metodologias Tradicionais
    –   Problemas
         ●   Trabalho Manual x Trabalho do Conhecimento
         ●   Trabalhador Manual
              –   trabalho físico e repetitivo
              –   não depende de muito conhecimento
              –   fácil de automatizar
         ●   Trabalhador do Conhecimento
              –   Uso intensivo de conhecimento e criatividade
         ●   Desenvolvimento de Software é feito por
             Trabalhadores do Conhecimento
Desenvolvimento de Software
●   Metodologias Iterativas
    –   Incremental
    –   Bom para encontrar erros no começo
    –   Acomodação para mudanças
Desenvolvimento de Software
●   Metodologias Ágeis
    –   Manifesto Ágil
         ●   Indivíduos e interações em vez de
             processos e ferramentas
         ●   Softwares funcionando em vez de
             documentação abrangente
         ●   Colaboração com o cliente em vez de
             negociação de contratos
         ●   Resposta a modificações em vez de
             seguir um plano
    –   Jogo com objetivo, finito, cooperativo de
        invenção e comunicação
Desenvolvimento de Software
●   Iterativas X Ágeis
    –   Ágeis: semanas/dias
    –   Iterativas: meses
    –   Ágeis: comunicação informal
    –   Iterativas: documentação
Extreme Programming
●   Voltado para:
    –   Requisitos vagos e mudanças freqüentes
    –   Sistemas orientados a objeto
    –   Equipes pequenas
    –   Desenvolvimento incremental
●   Kent Beck e Ward Cunningham
●   Práticas do Smalltalk
●   C3
Extreme Programming
●   Valores
    –   Feedback
    –   Comunicação
    –   Simplicidade
    –   Coragem
Extreme Programming
●   Práticas
    –   Cliente Presente
    –   Jogo do Planejamento
    –   Stand Up Meeting
    –   Programação em Par
    –   Desenvolvimento Guiado pelos Testes
    –   Refatoração
Extreme Programming
●   Práticas
    –   Código Coletivo
    –   Código Padronizado
    –   Design Simples
    –   Metáfora
    –   Ritmo Sustentável
    –   Integração Contínua
    –   Releases Curtos
Desenvolvimento Distribuído de
Software (DSS)
●   Teletrabalho e Comércio Eletrônico
    –   Trabalho de volta ao lar
    –   Ligação por tecnologias
    –   Artesanato imaterial
●   Trabalhador Conhecimento
    –   Trancado não produz
    –   Ao contrário do trabalhador manual
●   Mercados Globais
Desenvolvimento Distribuído de
Software (DSS)
●   Redução de 25% - 50% custos
●   Profissionais habilitados em outro idioma
●   Baixas taxas de turnover
●   Incentivos fiscais
Desenvolvimento Distribuído de
Software (DSS)
●   Características
    –   colaboração e cooperação entre
        departamentos globais
    –   pequenos grupos que trabalham em conjunto
        em localizações diferentes
    –   dispersão
         ●   geográfica
         ●   temporal
         ●   culturais
Desenvolvimento Distribuído de
Software (DSS)
●   Características
    –   3 formas principais
         ●   outsourcing
         ●   join-venture
         ●   insourcing
    –   Do ponto de vista geográfico
         ●   offshore
         ●   onshore (offsite ou onsite)
Desenvolvimento Distribuído de
Software (DSS)
●   Desafios
    –   interdependência entre os itens distribuídos,
    –   dificuldade de coordenação
    –   divisão de trabalho em modulos
    –   comunicação
Combinando DDS e Métodos Ágeis

●   Algumas questões
    –   Como realizar a comunicação efetivamente?
    –   Que práticas de comunicação e mídia são
        apropriadas?
    –   Como a comunicação informal pode ser
        incentivada?
    –   Como os riscos por enganos na comunicação
        podem ser minimizados?
    –   Como a confiança pode ser construída e
        mantida para garantir uma comunicação
        aberta?
Combinando DDS e Métodos Ágeis

●   desafios culturais são comuns
●   literatura pessimista
●   métodos ágeis pode mudar o modelo de
    comando e controle
Combinando DDS e Métodos Ágeis

●   XP Distribuído (DXP)
    –   poucos estudos
    –   redução no tempo de resposta da
        comunicação
    –   comunicação de qualidade entre clientes e
        times de desenvolvedores distribuídos
    –   todas as experiências estudas tiveram
        sucesso
Combinando DDS e Métodos Ágeis
●   XP Distribuído (DXP)
Combinando DDS e Métodos Ágeis
●   XP Distribuído (DXP)
    –   Cliente Presente > Cliente Virtualmente
        Presente
    –   Jogo do Planejamento > Vídeo
        Conferência, compartilhamento de desktop,
        VOIP
    –   Programação em Par > Compartilhamento
        de Desktop
    –   Stand Up Meeting > email, wiki, IRC
Combinando DDS e Métodos Ágeis
●   XP Distribuído (DXP)
    –   Comunicação: possível com vídeo e áudio
        conferência
    –   Simplicidade: não é afetada
    –   Feedback: caso a comunicação seja efetiva,
        não é afetado
    –   Coragem: ainda mais necessária
Conclusão
●   DXP não é tão efetivo quanto XP
●   DXP não perde os valores básicos do XP
●   DXP é mais efetivo que outras
    metodologias em ambiente distribuído
●   DXP está tendo sucesso
Futuro do Projeto

●   Estudar outras metodologias ágeis, e
    combinar algumas
●   Estudo de Caso em um projeto real

More Related Content

What's hot

técnicas de análise de requisitos
técnicas de análise de requisitostécnicas de análise de requisitos
técnicas de análise de requisitos
Katia Speck
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
Milfont Consulting
 

What's hot (19)

Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Formação de Equipes de Alto Desempenho para Desenvolvimento de Software: O Pa...
Formação de Equipes de Alto Desempenho para Desenvolvimento de Software: O Pa...Formação de Equipes de Alto Desempenho para Desenvolvimento de Software: O Pa...
Formação de Equipes de Alto Desempenho para Desenvolvimento de Software: O Pa...
 
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves RochaAPRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
 
técnicas de análise de requisitos
técnicas de análise de requisitostécnicas de análise de requisitos
técnicas de análise de requisitos
 
Gerenciamento de Projetos - Oportunidades & Perspectivas
Gerenciamento de Projetos - Oportunidades & PerspectivasGerenciamento de Projetos - Oportunidades & Perspectivas
Gerenciamento de Projetos - Oportunidades & Perspectivas
 
Metodologia ágil das Desenvolvimento Adaptativo Software
Metodologia ágil das   Desenvolvimento Adaptativo SoftwareMetodologia ágil das   Desenvolvimento Adaptativo Software
Metodologia ágil das Desenvolvimento Adaptativo Software
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Desenvolvimento ágil
Desenvolvimento ágilDesenvolvimento ágil
Desenvolvimento ágil
 
Desenvolvimento Distribuído de Software
Desenvolvimento Distribuído de SoftwareDesenvolvimento Distribuído de Software
Desenvolvimento Distribuído de Software
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
 
Introducao a projetos de desenvolvimento distribuído de software
Introducao a projetos de desenvolvimento distribuído de softwareIntroducao a projetos de desenvolvimento distribuído de software
Introducao a projetos de desenvolvimento distribuído de software
 
Scrum com Equipes Distribuidas
Scrum com Equipes DistribuidasScrum com Equipes Distribuidas
Scrum com Equipes Distribuidas
 
Gestão de Programas com o Program Model Canvas
Gestão de Programas com o Program Model CanvasGestão de Programas com o Program Model Canvas
Gestão de Programas com o Program Model Canvas
 
Palestra Gerencia de Projetos
Palestra Gerencia de ProjetosPalestra Gerencia de Projetos
Palestra Gerencia de Projetos
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Apresentação NetProject 2021
Apresentação NetProject 2021Apresentação NetProject 2021
Apresentação NetProject 2021
 
Metodologias Ágeis em Gerenciamento de Projetos
Metodologias Ágeis em Gerenciamento de ProjetosMetodologias Ágeis em Gerenciamento de Projetos
Metodologias Ágeis em Gerenciamento de Projetos
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
 
Planejamento e gerência de risco de software
Planejamento e gerência de risco de softwarePlanejamento e gerência de risco de software
Planejamento e gerência de risco de software
 

Viewers also liked (7)

Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com Drupal
 
Drupal 7 Direto das Trincheiras
Drupal 7  Direto das TrincheirasDrupal 7  Direto das Trincheiras
Drupal 7 Direto das Trincheiras
 
Introdução ao Drupal 6
Introdução ao Drupal 6Introdução ao Drupal 6
Introdução ao Drupal 6
 
Desenvolvimento Ágil com Drupal
Desenvolvimento Ágil com DrupalDesenvolvimento Ágil com Drupal
Desenvolvimento Ágil com Drupal
 
Metodologia para criação de sites
Metodologia para criação de sitesMetodologia para criação de sites
Metodologia para criação de sites
 
Projeto de WEB Site
Projeto de WEB SiteProjeto de WEB Site
Projeto de WEB Site
 
Arco en C
Arco en CArco en C
Arco en C
 

Similar to Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de Software

Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
Rodrigo Branas
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Gabriel Rubens
 
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Vanessa Campos
 

Similar to Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de Software (20)

Trabalho pds libre office 2
Trabalho pds libre office 2Trabalho pds libre office 2
Trabalho pds libre office 2
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Engenharia de Software - Unimep/Pronatec - Aula 16
Engenharia de Software - Unimep/Pronatec - Aula 16Engenharia de Software - Unimep/Pronatec - Aula 16
Engenharia de Software - Unimep/Pronatec - Aula 16
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresa
 
Agile explicacao 18
Agile explicacao 18Agile explicacao 18
Agile explicacao 18
 
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de SoftwareConceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
 
Desenvolvimento ágil pensando além
Desenvolvimento ágil   pensando alémDesenvolvimento ágil   pensando além
Desenvolvimento ágil pensando além
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
 
Metodos ageis
Metodos ageisMetodos ageis
Metodos ageis
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
A Profissão De Gerente De Projetos E A Sua Importância Na Estratégia Das Orga...
A Profissão De Gerente De Projetos E A Sua Importância Na Estratégia Das Orga...A Profissão De Gerente De Projetos E A Sua Importância Na Estratégia Das Orga...
A Profissão De Gerente De Projetos E A Sua Importância Na Estratégia Das Orga...
 
DDD
DDDDDD
DDD
 
Zeluisbraga engsoftware-academico-inland-fev2010
Zeluisbraga engsoftware-academico-inland-fev2010Zeluisbraga engsoftware-academico-inland-fev2010
Zeluisbraga engsoftware-academico-inland-fev2010
 
Desenvolvimento Distribuído de Software
Desenvolvimento Distribuído de SoftwareDesenvolvimento Distribuído de Software
Desenvolvimento Distribuído de Software
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
 
Palestra PUC-Rio - Métodos Ágeis & SCRUM
Palestra PUC-Rio - Métodos Ágeis & SCRUMPalestra PUC-Rio - Métodos Ágeis & SCRUM
Palestra PUC-Rio - Métodos Ágeis & SCRUM
 
Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
 
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
 

Estudo da Aplicação de Extreme programming no Desenvolvimento Distribuído de Software

  • 1. Rafael Recalde Caceres Estudo da Aplicação de Extreme Programming no Desenvolvimento Distribuído de Software
  • 2. Introdução ● Motivação – Busca de técnicas para reduzir os custos – Tornar o desenvolvimento mais produtivo – Reduzir distâncias e melhorar a comunicação em equipes distribuídas
  • 3. Introdução ● Justificativas – Ambiente de negócios mutável – Como gerenciar equipes ágeis distribuídas? – Como gerenciar imprevisibilidade?
  • 4. Introdução ● Objetivos – Estudar metodologias ágeis; – Estudar o desenvolvimento distribuído de software (DDS); – Analisar os efeitos do uso de metodologias ágeis no desenvolvimento distribuído de software;
  • 5. Introdução ● Roteiro – Desenvolvimento de Software – Extreme Programming – Desenvolvimento Distribuído de Software – Combinado Desenvolvimento Distribuído de Software e Métodos Ágeis – Conclusão
  • 6. Desenvolvimento de Software ● Metodologias de Desenvolvimento – Estudo dos métodos – Técnica de como fazer – Conjunto de Tarefas ● comunicação, análise de requisitos, modelagem de projeto, construção de programas, testes e manutenção
  • 7. Desenvolvimento de Software ● O Caos – Codifica/corrige – Crise do Software – CHAOS Report ● 15% dos projetos falha totalmente ● 51% estouram orçamento ou cronograma ● apenas 34% atingem sucesso
  • 8. 19% das funcionalidades são raramente usadas 45% das funcionalidades nunca são usadas
  • 9. Desenvolvimento de Software ● Metodologias Tradicionais – Modelo em Cascata ● Mais famoso e mais antigo e mais utilizado ● Assume que a engenharia de software é igual a outras engenharias ● Linear, especialista, com foco na execução e maximização da produção ● Reconhecidamente ineficaz
  • 10.
  • 11. Desenvolvimento de Software ● Metodologias Tradicionais – Problemas ● Trabalho Manual x Trabalho do Conhecimento ● Trabalhador Manual – trabalho físico e repetitivo – não depende de muito conhecimento – fácil de automatizar ● Trabalhador do Conhecimento – Uso intensivo de conhecimento e criatividade ● Desenvolvimento de Software é feito por Trabalhadores do Conhecimento
  • 12. Desenvolvimento de Software ● Metodologias Iterativas – Incremental – Bom para encontrar erros no começo – Acomodação para mudanças
  • 13. Desenvolvimento de Software ● Metodologias Ágeis – Manifesto Ágil ● Indivíduos e interações em vez de processos e ferramentas ● Softwares funcionando em vez de documentação abrangente ● Colaboração com o cliente em vez de negociação de contratos ● Resposta a modificações em vez de seguir um plano – Jogo com objetivo, finito, cooperativo de invenção e comunicação
  • 14. Desenvolvimento de Software ● Iterativas X Ágeis – Ágeis: semanas/dias – Iterativas: meses – Ágeis: comunicação informal – Iterativas: documentação
  • 15. Extreme Programming ● Voltado para: – Requisitos vagos e mudanças freqüentes – Sistemas orientados a objeto – Equipes pequenas – Desenvolvimento incremental ● Kent Beck e Ward Cunningham ● Práticas do Smalltalk ● C3
  • 16. Extreme Programming ● Valores – Feedback – Comunicação – Simplicidade – Coragem
  • 17. Extreme Programming ● Práticas – Cliente Presente – Jogo do Planejamento – Stand Up Meeting – Programação em Par – Desenvolvimento Guiado pelos Testes – Refatoração
  • 18. Extreme Programming ● Práticas – Código Coletivo – Código Padronizado – Design Simples – Metáfora – Ritmo Sustentável – Integração Contínua – Releases Curtos
  • 19. Desenvolvimento Distribuído de Software (DSS) ● Teletrabalho e Comércio Eletrônico – Trabalho de volta ao lar – Ligação por tecnologias – Artesanato imaterial ● Trabalhador Conhecimento – Trancado não produz – Ao contrário do trabalhador manual ● Mercados Globais
  • 20. Desenvolvimento Distribuído de Software (DSS) ● Redução de 25% - 50% custos ● Profissionais habilitados em outro idioma ● Baixas taxas de turnover ● Incentivos fiscais
  • 21. Desenvolvimento Distribuído de Software (DSS) ● Características – colaboração e cooperação entre departamentos globais – pequenos grupos que trabalham em conjunto em localizações diferentes – dispersão ● geográfica ● temporal ● culturais
  • 22. Desenvolvimento Distribuído de Software (DSS) ● Características – 3 formas principais ● outsourcing ● join-venture ● insourcing – Do ponto de vista geográfico ● offshore ● onshore (offsite ou onsite)
  • 23. Desenvolvimento Distribuído de Software (DSS) ● Desafios – interdependência entre os itens distribuídos, – dificuldade de coordenação – divisão de trabalho em modulos – comunicação
  • 24. Combinando DDS e Métodos Ágeis ● Algumas questões – Como realizar a comunicação efetivamente? – Que práticas de comunicação e mídia são apropriadas? – Como a comunicação informal pode ser incentivada? – Como os riscos por enganos na comunicação podem ser minimizados? – Como a confiança pode ser construída e mantida para garantir uma comunicação aberta?
  • 25. Combinando DDS e Métodos Ágeis ● desafios culturais são comuns ● literatura pessimista ● métodos ágeis pode mudar o modelo de comando e controle
  • 26. Combinando DDS e Métodos Ágeis ● XP Distribuído (DXP) – poucos estudos – redução no tempo de resposta da comunicação – comunicação de qualidade entre clientes e times de desenvolvedores distribuídos – todas as experiências estudas tiveram sucesso
  • 27. Combinando DDS e Métodos Ágeis ● XP Distribuído (DXP)
  • 28. Combinando DDS e Métodos Ágeis ● XP Distribuído (DXP) – Cliente Presente > Cliente Virtualmente Presente – Jogo do Planejamento > Vídeo Conferência, compartilhamento de desktop, VOIP – Programação em Par > Compartilhamento de Desktop – Stand Up Meeting > email, wiki, IRC
  • 29. Combinando DDS e Métodos Ágeis ● XP Distribuído (DXP) – Comunicação: possível com vídeo e áudio conferência – Simplicidade: não é afetada – Feedback: caso a comunicação seja efetiva, não é afetado – Coragem: ainda mais necessária
  • 30. Conclusão ● DXP não é tão efetivo quanto XP ● DXP não perde os valores básicos do XP ● DXP é mais efetivo que outras metodologias em ambiente distribuído ● DXP está tendo sucesso
  • 31. Futuro do Projeto ● Estudar outras metodologias ágeis, e combinar algumas ● Estudo de Caso em um projeto real