SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
Programação Extrema - XP
                                Motivação:
 * Necessidade de software de qualidade com rapidez.
 * Apenas 16,2% dos softwares atingiam sucesso em 1994 e, em
    2002 subiu para 34%(Standish Group International).
 * Vários motivos para a baixa taxa de sucesso dos modelos
    tradicionais:
    ->Tempo elevado entre cada fase do projeto, demora p/ versões funcionais;
    -> Falta de conhecimento por parte do cliente da sua real necessidade;
    -> Ênfase na burocracia (diagramas UML, documentos, formulários,
       crogramas rígidos);
    -> Grande quantidade de erros, gerando desconfiança no software;




       Programação Extrema - XP
                                Solução:
*Focando nas fragilidades do modelo tradicional, surgiram
  metodologias p/ desenvolvimento ágil de software.
  -> Foco nas pessoas, não no processo, evitando especulações dos
  desenvolvedores;
  -> Garantir a satisfação do cliente entregando rapidamente e contiuamente
  softwares funcionais;
  -> O cliente aprender suas reais necessidades durante o projeto e, repassá-las
  aos desenvolvedores.
  -> Software em funcionamento mais que documentação abrangente;
  -> Testes para evitar bugs;


* Uma destas metodologias de desenvolvimento ágil é o Extreme
   Programming, visando a grande qualidade do software
   desenvolvido e atendendo ás reais necessidades do cliente.




                                                                                   1
Programação Extrema - XP

                         Os valores do XP:
     *Comunicação: Entre os desenvolvedores, e entre a equipe e o
       cliente.
     *Simplicidade: Fazer sempre a coisa mais simples que pode
       funcionar. (KISS)
     *Feedback: Saber oque está funcionando a todo o momento.
     *Coragem: Código feio? fatore, código muito feio? jogue fora e
       começe denovo!
     *Respeito: Saber ouvir e compreender os outros.




          Programação Extrema - XP

                         As 12 Práticas do XP
1.     Planejamento                   1.   Propriedade Coletiva
2.     Fases Pequenas                 2.   Integração Contínua
3.     Metáfora                       3.   Semana de 40 horas
4.     Design Simples                 4.   Cliente junto aos
5.     Testes                              desenvolvedores

6.     Refatoração                    5.   Padronização do código

7.     Programação Pareada




                                                                      2
Programação Extrema - XP

                            Planejamento
O desenvolvimento é feito em iterações semanais. No início da semana,
desenvolvedores e cliente reúnem-se para priorizar as funcionalidades

                         Fases Pequenas
  A liberação de pequenas versões funcionais do projecto auxilia muito no
processo de aceitação por parte do cliente, que já pode testar uma parte do
                      sistema que está comprando

                               Metáfora
Procura facilitar a comunicação com o cliente, entendendo a realidade dele.
           Guie o desenvolvimento usando uma estória simples.




   Programação Extrema - XP

                          Design Simples
  Simplicidade é um princípio da XP. Implemente apenas a funcionalidade
            que foi solicitada. Não confundir simples com fácil.

                                Testes
Podem ser de diversos tipos, tais como: de aceitação; que são criados pelos
clientes junto com analistas, para determinar a aceitação da funcionalidade
              do sistema; TDD; Testes de Integração e outros;
                              Refatoração
  É um processo que permite a melhoria continua da programação, com o
mínimo de introdução de erros e mantendo a compatibilidade com o código
 já existente. Refabricar melhora a clareza do código, divide-o em módulos
mais coesos e de maior reaproveitamento, evitando a duplicação de código-
                                    fonte




                                                                              3
Programação Extrema - XP

                     Programação Pareada
É a programação em par/dupla num único computador. Reduz o numero de
                      bugs e equilibra a equipe.

                       Propriedade Coletiva
 O código-fonte não tem dono e ninguém precisa solicitar permissão para
 poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer
                      todas as partes do sistema.

                       Integração Contínua
Sempre que produzir uma nova funcionalidade, nunca esperar uma semana
                para integrar à versão atual do sistema




    Programação Extrema - XP

                       Semana de 40 horas
   Trabalhar com qualidade, buscando ter ritmo de trabalho saudável (40
              horas/semana, 8 horas/dia), sem horas extras.

              Cliente junto aos desenvolvedores
 O cliente permanece o tempo todo a par do desenvolvimento do software,
         indicando modificações e esclarecendo duvidas da equipe.

                     Padronização do código
 A equipe de desenvolvimento precisa estabelecer regras para programar e
 todos devem seguir estas regras. A código fonte final deve parecer ter sido
                    feito por apenas um programador.




                                                                               4
Programação Extrema - XP

                      Jogo do Planejamento
               Elaboração das Histórias (Exploração)


1) Histórias determinam algo que o sistema precisa fazer, são
  descritas pelo cliente.


2) O tempo para elaborar uma história é estimado pelo time.


3) Caso uma história fique muito grande, ela é dividida em
  tarefas.




      Programação Extrema - XP

                    Jogo do Planejamento
                      Fase do comprometimento
Define a data da próxima entrega, e quais histórias serão
  implementadas.
Classificação por valor: Cliente classifica as histórias em 3 pilhas de
  prioridades.
Classificação por risco: Time divide as histórias em: estimadas
  precisamente,estimadas razoavelmente bem e as que não
  conseguem ser estimadas.
Definição de velocidade: Time informa o cliente a rapidez que o time
  pode trabalhar em condições ideais.
Escolha do Escopo: Cliente escolhe as histórias que farão parte da
  próxima versão.




                                                                          5
Programação Extrema - XP

                    Jogo do Planejamento
                       Fase de Direcionamento
Tem como propósito atualizar o plano de desenvolvimento, ”muda o
  curso do vôo”.
Permite criar novas histórias, redefinir histórias e mudar a velocidade de
  desenvolvimento.
                Jogo do ponto de vista do desenvolvedor:
O desenvolvedor escolhe uma história, senta com outro desenvolvedor
  e a implementa.
                           Reuniões de pé:
Rápidas e com todo o time reunido, colocam em dia oque cada um fez
  e servem para aumentar a comunicação além de dar feedback sobre
  o andamento do projeto.




      Programação Extrema - XP

                    Programação em Pares
  Dois programadores no mesmo computador; Geralmente um
  programador com mais experiência e um novato.
  Novato responsável pela codificação, o experiente acompanha
  ajudando a desenvolver suas habilidades.
  O programa desenvolvido é visto por pelo menos duas pessoas
  em tempo de codificação, reduzindo assim o numero de bugs
  possíveis.
  Evolução da equipe no processo, visto que o novato é treinado
  nas técnicas de XP desde o inicio de sua participação. A
  equipe torna-se mais equilibrada.




                                                                             6
Programação Extrema - XP
       Visão de Desenvolvimento




Programação Extrema - XP
       Visão de Iterações




                                  7
Programação Extrema - XP


                        Metáforas

Ao criar comparações e análogias com o dominio em questão o time
passa criar um vocabulário comum, que passa a ser usado para
modelar o sistema e definir sua arquitetura.




   Programação Extrema - XP

                          Testes
Não existem “testadores”, todo o desenvolvedor
desenvolve testes.
Com base nos testes que o desenvolvedor terá
a coragem de alterar o sistema.
Garantem que o sistema faz oque deve ser
feito.
Na XP existem os testes de unidade e de
aceitação.




                                                                   8
Programação Extrema - XP
                     Testes de Unidade

  São escritos pelos desenvolvedores enquanto codificam o sistema.
  Devem ser automatizados e rápidos de executar.
  Devem ser criados para todas as classes do sistema.
  São escritos antes da implementação(TDD).
  São um meio de comunicação entre os desenvolvedores,
  São a fonte de coragem para realizar a fatoração.




    Programação Extrema - XP

                   Testes de Aceitação

Originalmente chamado de teste de funcionalidade.
São escritos pelo cliente.
São escritos no momento da escrita da história.
O cliente sabe quando uma funcionalidade é terminada.
Para cada história deve existir pelo menos um teste de aceitação.
 Uma história só é declarada terminada quando seus testes de
aceitação passarem.




                                                                     9
TDD e Fatoração:
1)Crie um teste.
2)O teste não compila(a classe ainda não foi implementada!)
3)Faça compilar.
4)Veja o teste falha, ótimo, o teste falhou!
5)Implemente o código mais simples que faça o teste passar.
6) Fatore, removendo duplicação e tornando o código mais legível e
   flexivel.
7) Volte para o passo 1, até que não consiga pensar em mais nada
   para testar.




                    Bibliográfia:
   BECK, Kent. Programação extrema
   explicada:acolha as mudanças - Porto Alegre :
   Bookman, 2004;
   BECK, Kent. Test Driven Development;
   http://www.improveit.com.br/xp
   http://www.extremeprogramming.org/;




                                                                     10

Más contenido relacionado

La actualidad más candente

XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme ProgrammingDenis L Presciliano
 
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
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme ProgrammingMilfont Consulting
 
Xp Comdex
Xp ComdexXp Comdex
Xp ComdexJ. C.
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingJ. C.
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumRafael Souza
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingDaniel Wildt
 
IPA Conhecendo XP
IPA Conhecendo XPIPA Conhecendo XP
IPA Conhecendo XPWildtech
 
Bate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XPBate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XPWildtech
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteAislan Fernandes
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Joao Galdino Mello de Souza
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
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 SoftwareAdolfo Neto
 

La actualidad más candente (20)

eXtreme Programming (XP)
eXtreme Programming (XP)eXtreme Programming (XP)
eXtreme Programming (XP)
 
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
 
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)
 
Apresentando Extreme Programming
Apresentando Extreme ProgrammingApresentando Extreme Programming
Apresentando Extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Xp Comdex
Xp ComdexXp Comdex
Xp Comdex
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 
Extreme Programming XP
Extreme Programming XPExtreme Programming XP
Extreme Programming XP
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
IPA Conhecendo XP
IPA Conhecendo XPIPA Conhecendo XP
IPA Conhecendo XP
 
Bate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XPBate-papo com Especialista Terra XP
Bate-papo com Especialista Terra XP
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
TDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do TesteTDD - A Verdadeira Face do Teste
TDD - A Verdadeira Face do Teste
 
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
Qualidade no desenvolvimento de Sistemas por Anderson Augustinho (Celepar)
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
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
 

Destacado

Atividade 2.8 marilene
Atividade 2.8 marileneAtividade 2.8 marilene
Atividade 2.8 marileneiolanda.dn
 
Introducción a la informática grupo 1
Introducción a la informática grupo 1 Introducción a la informática grupo 1
Introducción a la informática grupo 1 denissemurilloz
 
enterobacterias, vibrios y pseudomonas
enterobacterias, vibrios y pseudomonasenterobacterias, vibrios y pseudomonas
enterobacterias, vibrios y pseudomonasTatiana Hernández
 
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)Rildo (@rildosan) Santos
 
Coró, marcos eduardo. 2001
Coró, marcos eduardo. 2001Coró, marcos eduardo. 2001
Coró, marcos eduardo. 2001INFISTA
 
Reclutamiento y selección de peronal recursos
Reclutamiento y selección de peronal recursosReclutamiento y selección de peronal recursos
Reclutamiento y selección de peronal recursosGeovannaPenaloza
 
Bertel Thorvaldsen. Escultura neoclásica
Bertel Thorvaldsen. Escultura neoclásicaBertel Thorvaldsen. Escultura neoclásica
Bertel Thorvaldsen. Escultura neoclásicaRubén García
 
Mamiferos herbivoros
Mamiferos herbivorosMamiferos herbivoros
Mamiferos herbivorosangelito4321
 
Cltura, ideología, identidad nacional y etnia.
Cltura, ideología, identidad nacional y etnia.Cltura, ideología, identidad nacional y etnia.
Cltura, ideología, identidad nacional y etnia.atilaqah
 
IBM Social Media Analytics - México
IBM Social Media Analytics - MéxicoIBM Social Media Analytics - México
IBM Social Media Analytics - MéxicoAbraham Muñoz
 
Carta de-control-interno
Carta de-control-internoCarta de-control-interno
Carta de-control-internoFernanda León
 
Alfabeto Visual_Introdução ap Alfabeto Visual
Alfabeto Visual_Introdução ap Alfabeto VisualAlfabeto Visual_Introdução ap Alfabeto Visual
Alfabeto Visual_Introdução ap Alfabeto VisualSancho Ferreira
 
Programa de trazabilidad 583802
Programa de trazabilidad 583802Programa de trazabilidad 583802
Programa de trazabilidad 583802Jose Luis Medina
 

Destacado (20)

Atividade 2.8 marilene
Atividade 2.8 marileneAtividade 2.8 marilene
Atividade 2.8 marilene
 
Introducción a la informática grupo 1
Introducción a la informática grupo 1 Introducción a la informática grupo 1
Introducción a la informática grupo 1
 
Futuro Digital América Latina 2015 – comScore
Futuro Digital América Latina 2015 – comScoreFuturo Digital América Latina 2015 – comScore
Futuro Digital América Latina 2015 – comScore
 
enterobacterias, vibrios y pseudomonas
enterobacterias, vibrios y pseudomonasenterobacterias, vibrios y pseudomonas
enterobacterias, vibrios y pseudomonas
 
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)
 
Mamiferos herbivoros
Mamiferos herbivorosMamiferos herbivoros
Mamiferos herbivoros
 
Coró, marcos eduardo. 2001
Coró, marcos eduardo. 2001Coró, marcos eduardo. 2001
Coró, marcos eduardo. 2001
 
Reclutamiento y selección de peronal recursos
Reclutamiento y selección de peronal recursosReclutamiento y selección de peronal recursos
Reclutamiento y selección de peronal recursos
 
Bertel Thorvaldsen. Escultura neoclásica
Bertel Thorvaldsen. Escultura neoclásicaBertel Thorvaldsen. Escultura neoclásica
Bertel Thorvaldsen. Escultura neoclásica
 
Mamiferos herbivoros
Mamiferos herbivorosMamiferos herbivoros
Mamiferos herbivoros
 
Cltura, ideología, identidad nacional y etnia.
Cltura, ideología, identidad nacional y etnia.Cltura, ideología, identidad nacional y etnia.
Cltura, ideología, identidad nacional y etnia.
 
Gestor de proyecto
Gestor de proyectoGestor de proyecto
Gestor de proyecto
 
IBM Social Media Analytics - México
IBM Social Media Analytics - MéxicoIBM Social Media Analytics - México
IBM Social Media Analytics - México
 
Carta de-control-interno
Carta de-control-internoCarta de-control-interno
Carta de-control-interno
 
Rse y competitividad en euskadi. Estudio Innobasque
Rse y competitividad en euskadi. Estudio InnobasqueRse y competitividad en euskadi. Estudio Innobasque
Rse y competitividad en euskadi. Estudio Innobasque
 
Toma De Decisiones Y Solucion De Problemas
Toma De Decisiones Y Solucion De ProblemasToma De Decisiones Y Solucion De Problemas
Toma De Decisiones Y Solucion De Problemas
 
Alfabeto Visual_Introdução ap Alfabeto Visual
Alfabeto Visual_Introdução ap Alfabeto VisualAlfabeto Visual_Introdução ap Alfabeto Visual
Alfabeto Visual_Introdução ap Alfabeto Visual
 
Nbr 7217 ok
Nbr 7217 okNbr 7217 ok
Nbr 7217 ok
 
Programa de trazabilidad 583802
Programa de trazabilidad 583802Programa de trazabilidad 583802
Programa de trazabilidad 583802
 
MAPA CONCEPTUAL
MAPA CONCEPTUALMAPA CONCEPTUAL
MAPA CONCEPTUAL
 

Similar a XP - 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 ÁgilRebecca Betwel
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de SoftwareAdilmar Dantas
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003Edgar Silva
 
XP Programming
XP ProgrammingXP Programming
XP ProgrammingCJR, UnB
 
XP - eXtreme Programming
XP - eXtreme ProgrammingXP - eXtreme Programming
XP - eXtreme ProgrammingÉdipo Souza
 
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
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programmingceife
 
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
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
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
 
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 desenvolvimentoledsifes
 
Es capítulo 3 - desenvolvimento ágil
Es   capítulo 3  -  desenvolvimento ágilEs   capítulo 3  -  desenvolvimento ágil
Es capítulo 3 - desenvolvimento ágilFelipe Oliveira
 

Similar a XP - Extreme Programming (20)

Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
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
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003Aplicando  eXtreming Programing  ao cenário do  Borland ALM - BorCon 2003
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
XP - eXtreme Programming
XP - eXtreme ProgrammingXP - eXtreme Programming
XP - eXtreme Programming
 
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
 
Trabalho xp
Trabalho xpTrabalho xp
Trabalho xp
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
FDD
FDDFDD
FDD
 
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
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
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
 
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
 
Es capítulo 3 - desenvolvimento ágil
Es   capítulo 3  -  desenvolvimento ágilEs   capítulo 3  -  desenvolvimento ágil
Es capítulo 3 - desenvolvimento ágil
 

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

XP - Extreme Programming

  • 1. Programação Extrema - XP Motivação: * Necessidade de software de qualidade com rapidez. * Apenas 16,2% dos softwares atingiam sucesso em 1994 e, em 2002 subiu para 34%(Standish Group International). * Vários motivos para a baixa taxa de sucesso dos modelos tradicionais: ->Tempo elevado entre cada fase do projeto, demora p/ versões funcionais; -> Falta de conhecimento por parte do cliente da sua real necessidade; -> Ênfase na burocracia (diagramas UML, documentos, formulários, crogramas rígidos); -> Grande quantidade de erros, gerando desconfiança no software; Programação Extrema - XP Solução: *Focando nas fragilidades do modelo tradicional, surgiram metodologias p/ desenvolvimento ágil de software. -> Foco nas pessoas, não no processo, evitando especulações dos desenvolvedores; -> Garantir a satisfação do cliente entregando rapidamente e contiuamente softwares funcionais; -> O cliente aprender suas reais necessidades durante o projeto e, repassá-las aos desenvolvedores. -> Software em funcionamento mais que documentação abrangente; -> Testes para evitar bugs; * Uma destas metodologias de desenvolvimento ágil é o Extreme Programming, visando a grande qualidade do software desenvolvido e atendendo ás reais necessidades do cliente. 1
  • 2. Programação Extrema - XP Os valores do XP: *Comunicação: Entre os desenvolvedores, e entre a equipe e o cliente. *Simplicidade: Fazer sempre a coisa mais simples que pode funcionar. (KISS) *Feedback: Saber oque está funcionando a todo o momento. *Coragem: Código feio? fatore, código muito feio? jogue fora e começe denovo! *Respeito: Saber ouvir e compreender os outros. Programação Extrema - XP As 12 Práticas do XP 1. Planejamento 1. Propriedade Coletiva 2. Fases Pequenas 2. Integração Contínua 3. Metáfora 3. Semana de 40 horas 4. Design Simples 4. Cliente junto aos 5. Testes desenvolvedores 6. Refatoração 5. Padronização do código 7. Programação Pareada 2
  • 3. Programação Extrema - XP Planejamento O desenvolvimento é feito em iterações semanais. No início da semana, desenvolvedores e cliente reúnem-se para priorizar as funcionalidades Fases Pequenas A liberação de pequenas versões funcionais do projecto auxilia muito no processo de aceitação por parte do cliente, que já pode testar uma parte do sistema que está comprando Metáfora Procura facilitar a comunicação com o cliente, entendendo a realidade dele. Guie o desenvolvimento usando uma estória simples. Programação Extrema - XP Design Simples Simplicidade é um princípio da XP. Implemente apenas a funcionalidade que foi solicitada. Não confundir simples com fácil. Testes Podem ser de diversos tipos, tais como: de aceitação; que são criados pelos clientes junto com analistas, para determinar a aceitação da funcionalidade do sistema; TDD; Testes de Integração e outros; Refatoração É um processo que permite a melhoria continua da programação, com o mínimo de introdução de erros e mantendo a compatibilidade com o código já existente. Refabricar melhora a clareza do código, divide-o em módulos mais coesos e de maior reaproveitamento, evitando a duplicação de código- fonte 3
  • 4. Programação Extrema - XP Programação Pareada É a programação em par/dupla num único computador. Reduz o numero de bugs e equilibra a equipe. Propriedade Coletiva O código-fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer todas as partes do sistema. Integração Contínua Sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema Programação Extrema - XP Semana de 40 horas Trabalhar com qualidade, buscando ter ritmo de trabalho saudável (40 horas/semana, 8 horas/dia), sem horas extras. Cliente junto aos desenvolvedores O cliente permanece o tempo todo a par do desenvolvimento do software, indicando modificações e esclarecendo duvidas da equipe. Padronização do código A equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir estas regras. A código fonte final deve parecer ter sido feito por apenas um programador. 4
  • 5. Programação Extrema - XP Jogo do Planejamento Elaboração das Histórias (Exploração) 1) Histórias determinam algo que o sistema precisa fazer, são descritas pelo cliente. 2) O tempo para elaborar uma história é estimado pelo time. 3) Caso uma história fique muito grande, ela é dividida em tarefas. Programação Extrema - XP Jogo do Planejamento Fase do comprometimento Define a data da próxima entrega, e quais histórias serão implementadas. Classificação por valor: Cliente classifica as histórias em 3 pilhas de prioridades. Classificação por risco: Time divide as histórias em: estimadas precisamente,estimadas razoavelmente bem e as que não conseguem ser estimadas. Definição de velocidade: Time informa o cliente a rapidez que o time pode trabalhar em condições ideais. Escolha do Escopo: Cliente escolhe as histórias que farão parte da próxima versão. 5
  • 6. Programação Extrema - XP Jogo do Planejamento Fase de Direcionamento Tem como propósito atualizar o plano de desenvolvimento, ”muda o curso do vôo”. Permite criar novas histórias, redefinir histórias e mudar a velocidade de desenvolvimento. Jogo do ponto de vista do desenvolvedor: O desenvolvedor escolhe uma história, senta com outro desenvolvedor e a implementa. Reuniões de pé: Rápidas e com todo o time reunido, colocam em dia oque cada um fez e servem para aumentar a comunicação além de dar feedback sobre o andamento do projeto. Programação Extrema - XP Programação em Pares Dois programadores no mesmo computador; Geralmente um programador com mais experiência e um novato. Novato responsável pela codificação, o experiente acompanha ajudando a desenvolver suas habilidades. O programa desenvolvido é visto por pelo menos duas pessoas em tempo de codificação, reduzindo assim o numero de bugs possíveis. Evolução da equipe no processo, visto que o novato é treinado nas técnicas de XP desde o inicio de sua participação. A equipe torna-se mais equilibrada. 6
  • 7. Programação Extrema - XP Visão de Desenvolvimento Programação Extrema - XP Visão de Iterações 7
  • 8. Programação Extrema - XP Metáforas Ao criar comparações e análogias com o dominio em questão o time passa criar um vocabulário comum, que passa a ser usado para modelar o sistema e definir sua arquitetura. Programação Extrema - XP Testes Não existem “testadores”, todo o desenvolvedor desenvolve testes. Com base nos testes que o desenvolvedor terá a coragem de alterar o sistema. Garantem que o sistema faz oque deve ser feito. Na XP existem os testes de unidade e de aceitação. 8
  • 9. Programação Extrema - XP Testes de Unidade São escritos pelos desenvolvedores enquanto codificam o sistema. Devem ser automatizados e rápidos de executar. Devem ser criados para todas as classes do sistema. São escritos antes da implementação(TDD). São um meio de comunicação entre os desenvolvedores, São a fonte de coragem para realizar a fatoração. Programação Extrema - XP Testes de Aceitação Originalmente chamado de teste de funcionalidade. São escritos pelo cliente. São escritos no momento da escrita da história. O cliente sabe quando uma funcionalidade é terminada. Para cada história deve existir pelo menos um teste de aceitação. Uma história só é declarada terminada quando seus testes de aceitação passarem. 9
  • 10. TDD e Fatoração: 1)Crie um teste. 2)O teste não compila(a classe ainda não foi implementada!) 3)Faça compilar. 4)Veja o teste falha, ótimo, o teste falhou! 5)Implemente o código mais simples que faça o teste passar. 6) Fatore, removendo duplicação e tornando o código mais legível e flexivel. 7) Volte para o passo 1, até que não consiga pensar em mais nada para testar. Bibliográfia: BECK, Kent. Programação extrema explicada:acolha as mudanças - Porto Alegre : Bookman, 2004; BECK, Kent. Test Driven Development; http://www.improveit.com.br/xp http://www.extremeprogramming.org/; 10