XP Faculdade Evolução

Embed Size (px)

Citation preview

  • 8/18/2019 XP Faculdade Evolução

    1/50

    XPExtreme Programming

  • 8/18/2019 XP Faculdade Evolução

    2/50

    Apresentador

    Luis Cláudio

  • 8/18/2019 XP Faculdade Evolução

    3/50

    Introdução 

    Extreme Programming (XP) é uma metodologiade desenvolvimento de software, nascida nosEstados Unidos ao final da década de 90.

    Vem fazendo sucesso em diversos países, porajudar a criar sistemas de melhor qualidade,que são produzidos em menos tempo e deforma mais econômica que o habitual.

  • 8/18/2019 XP Faculdade Evolução

    4/50

    Introdução 

    Tais objetivos são alcançados atravésde um pequeno conjunto de valores,

    princípios e práticas, que diferemsubstancialmente da formatradicional de se desenvolversoftware.

  • 8/18/2019 XP Faculdade Evolução

    5/50

    Introdução 

    Projetos cujos requisitos são vagos emudam com frequência.

    Desenvolvimento de sistemas orientadosa objetos.

    Equipes pequenas, preferencialmenteaté 12 desenvolvedores.

    Desenvolvimento incremental (ouiterativo), onde o sistema começa a serimplementado logo no início do projeto evai ganhando novas funcionalidades aolongo do tempo.

  • 8/18/2019 XP Faculdade Evolução

    6/50

     Valores 

    Feedback

    Comunicação

    Simplicidade

    Respeito

    Coragem

  • 8/18/2019 XP Faculdade Evolução

    7/50

    Valores 

    Feedback

    Quando o cliente aprende com o sistema que utiliza e reavalia as suasnecessidades, gerando feedback para a equipe de desenvolvimento.

    É o mecanismo fundamental que permite que o cliente conduza odesenvolvimento diariamente.

     Garante que a equipe direcione assuas atenções para aquiloque irá gerar mais valor.

  • 8/18/2019 XP Faculdade Evolução

    8/50

    Valores 

    Comunicação

    O XP busca aproximar todosos envolvidos do projeto.

    Permite que o cliente compartilheo seu aprendizado com a equipe.

    Promover a comunicação face-a-face ou da forma mais rica que for viáve

    A comunicação entre o cliente e a equipe permite que todos os detalhes projeto sejam tratados com a atenção e a agilidade que merecem.

  • 8/18/2019 XP Faculdade Evolução

    9/50

    Valores 

    Feedback

    Comunicação

  • 8/18/2019 XP Faculdade Evolução

    10/50

     Valores 

    Simplicidade

    Temos que implementar apenas aquilo que é suficiente para atender a canecessidade do cliente.

    Ao codificar, deve-se preocupar apenas com os problemas de hoje.Deve-se deixar os problemas do futuro para o futuro.

    As generalizações devem ser feitas quando elas vierem na forma de umanecessidade específica e não como uma especulação.

  • 8/18/2019 XP Faculdade Evolução

    11/50

    Valores 

    Respeito

    Respeito é um valor que dá sustentação a todos osdemais.

    Membros de uma equipe só irão se preocupar emcomunicar-se melhor, por exemplo, se seimportarem uns com os outros.

    Respeito é o mais básico de todos os valores.

  • 8/18/2019 XP Faculdade Evolução

    12/50

    Valores 

    Coragem

    “A equipe precisa ser corajosa e acreditarque, utilizando as práticas e valores do XP,será capaz de fazer o software evoluir comsegurança e agilidade.” 

    “Em muitos casos, a equipe alteraráalgo que vinha funcionando corretamente,o que leva ao risco de gerar falhasno sistema.” 

    TELES, Vinícius M. Extreme Programming.

    Novatec Editora, 2006

  • 8/18/2019 XP Faculdade Evolução

    13/50

    Princípios

    Princípios existem paraservir de ponte entrevalores e práticas.

    Princípios servem comoguias que se aplicam a umdomínio específico.

  • 8/18/2019 XP Faculdade Evolução

    14/50

    Princípios

    O principio da auto semelhança sugereque, quando equipes XP  encontraremsoluções que funcionem em umcontexto, também procurem adotá-lasem outros, mesmo que em escalasdiferentes.

    Auto semelhança

  • 8/18/2019 XP Faculdade Evolução

    15/50

    Princípios

    Benefício mútuo é um dos princípios maisimportantes do XP e, ao mesmo tempo, umdos mais difíceis de serem adotados.

    Projetos de software são complexos enormalmente sofrem pressões de tempo eoutras que podem levar a equipe a adotarpráticas benéficas para uns, mas prejudiciaisa outros. É preciso atenção. O bomfuncionamento de uma equipe é algo frágil.

    Benefício mútuo 

  • 8/18/2019 XP Faculdade Evolução

    16/50

    Princípios

    Práticas como Equipe Integral sugerem

    que a equipe envolva, além dosdesenvolvedores, arquitetos, designers deinteração, executivos entre outros. Opiniõesdiferentes ajudam a complementar assoluções e torná-las mais ricas. 

    Diversidade 

  • 8/18/2019 XP Faculdade Evolução

    17/50

    Economia

    Software é um investimento.

    Desenvolver  é uma atividade queconsome dinheiro e tempo. Investe-seem software com a expectativa de que

    gere retornos para os negócios.

    XP reconhece essa premissa esuas práticas são organizadas paraantecipar receitas e adiar despesas. 

  • 8/18/2019 XP Faculdade Evolução

    18/50

  • 8/18/2019 XP Faculdade Evolução

    19/50

    Princípios

    Software é conhecimento inserido nomeio digital.

    Sendo assim, é fluído.

    Edifícios, por outro lado, são estruturasestáticas em um mundo físico.

    Apesar disso, muitos comparam fazersoftware a construir prédios.

    Esse é um erro grave.

    Fluidez 

  • 8/18/2019 XP Faculdade Evolução

    20/50

    Princípios

    Pessoas desenvolvem software.Metodologias e ferramentas apenas as ajudama realizar o trabalho.

    Portanto, é importante compreender anatureza humana para que possamospotencializar o que ela tem de melhor esuprimir o que tem de pior.Em particular, devemos compreender osprogramadores para que possamos nos aliar afavor e não contra seus instintos.

    Humanismo 

  • 8/18/2019 XP Faculdade Evolução

    21/50

    Princípios

    "Software não é ouro, é alface: um bem perecível. Se

    não for aprimorado ao longo do tempo, acabaestragando."

    Essa frase, atribuída a Brian Behlendorf no livroThe World is Flat, resume o princípio da melhoria.

    Melhoria 

  • 8/18/2019 XP Faculdade Evolução

    22/50

    Princípios

    Um acontecimento no projeto pode ser umacrise ou uma oportunidade dependendoapenas de como a equipe reage.

    Quando enxergamos problemas comooportunidades de aprendizado e mudança,podemos adotar atitudes mais proveitosas paratodos os envolvidos.

    Oportunidade 

  • 8/18/2019 XP Faculdade Evolução

    23/50

    Princípios

    Passos de bebê implicam em fazer apenaspequenas mudanças de cada vez.

    Passos de bebê 

  • 8/18/2019 XP Faculdade Evolução

    24/50

    Princípios

    Equipes XP trabalham para criar software dealta qualidade.

    O objetivo é altíssima qualidade para osoftware e nada menos que isso.

    Por que?Porque é mais satisfatório e econômico fazersoftware dessa forma.

    Qualidade 

  • 8/18/2019 XP Faculdade Evolução

    25/50

    Princípios

    Os problemas difíceis e críticos emdesenvolvimento de software devem ser

    resolvidos de várias formas diferentes.

    Mesmo que uma solução falhe completamente,as outras soluções irão prevenir um desastre.

    O custo da redundância é mais que pago pelaeconomia de não ter um desastre.

    Redundância 

  • 8/18/2019 XP Faculdade Evolução

    26/50

    Princípios

    Desenvolvimento de software tem uma longa tradição depessoas que se mantêm tão ocupadas pensando sobredesenvolvimento de software que elas não têm sequertempo para desenvolver software.

    Reflexão vem depois da ação.

    Aprendizado é ação refletida.

    Para maximizar o feedback, reflexões em equipes XP são

    misturadas com ação.

    Reflexão 

  • 8/18/2019 XP Faculdade Evolução

    27/50

    Princípios

    As práticas refletem responsabilidade aceita, por

    exemplo, sugerindo que, quem quer que aceitafazer um trabalho também o estime.

    Da mesma forma, a pessoa responsável porimplementar uma história também é responsávelpelo design, implementação e teste da mesma.

    Responsabilidade aceita 

  • 8/18/2019 XP Faculdade Evolução

    28/50

     Práticas 

  • 8/18/2019 XP Faculdade Evolução

    29/50

    Práticas 

     Ambiente Informativo

    Build de Dez Minutos

    Ciclo Semanal

    Ciclo Trimestral

    Desenvolvimento Orientad

    Design Incremen

    Primárias

  • 8/18/2019 XP Faculdade Evolução

    30/50

    Práticas 

    Folga

    Histórias

    Integração Contínua Programação em Par

    Sentar-se Junto

    Trabalho Energizado

    Primárias

  • 8/18/2019 XP Faculdade Evolução

    31/50

    Práticas 

    Corolárias

     Análise da Raiz do Problema

    Base de Código Unificada

    Código Coletivo

  • 8/18/2019 XP Faculdade Evolução

    32/50

    Práticas 

    Corolárias

    Código e Testes

    Continuidade da Equipe

    Contrato de Escopo Negociável

  • 8/18/2019 XP Faculdade Evolução

    33/50

    Práticas 

    Corolárias

    Envolvimento do Cliente Real

    Equipes que Encolhem

    Implantação Diária

  • 8/18/2019 XP Faculdade Evolução

    34/50

    Práticas 

    Corolárias

    Implantação Incremental

    Pagar Por Uso

  • 8/18/2019 XP Faculdade Evolução

    35/50

    Reunião em pé

    Stand up meeting

    É uma breve reunião realizada diariamente,normalmente de manhã, pela equipe de

    desenvolvimento com o objetivo de compartilharinformações sobre o projeto e priorizar suasatividades.

    Trata-se de um diálogo entre todos os membros daequipe, se possível envolvendo também a presençado cliente.

  • 8/18/2019 XP Faculdade Evolução

    36/50

    Refatoração

  • 8/18/2019 XP Faculdade Evolução

    37/50

    Metáfora

    Metáforas são usadas frequentementedurante o desenvolvimento de sistemas, namedida em que os desenvolvedores criam

    elementos dentro do computador para simularoutros que existem regularmente fora dele, nomundo físico.

  • 8/18/2019 XP Faculdade Evolução

    38/50

    Documentação 

  • 8/18/2019 XP Faculdade Evolução

    39/50

    Documentação 

    Por que documentar?

    Permitir que rapidamente um desenvolvedor possa criar ou manter umcódigo.

    Até que ponto documentar?

    O suficiente para apoiar o código: testes de unidade, testes de aceitação eoutras documentações.

    Quando documentar?

    Próximo da implementação (antes ou depois), para que o negócio não mudenquanto se documenta.

    Dentro da mesma iteração.

  • 8/18/2019 XP Faculdade Evolução

    40/50

    Equipe 

  • 8/18/2019 XP Faculdade Evolução

    41/50

    Equipe 

    Gerente de Projeto

    É responsável pelos assuntos administrativosdo projetos. Libera a equipe de questões não

    ligadas ao desenvolvimento. Administra orelacionamento com o cliente, assegurandoque o mesmo participe ativamente dodesenvolvimento.

  • 8/18/2019 XP Faculdade Evolução

    42/50

    Equipe 

    Coach

    É o responsável técnico pelo projeto.

    Orienta a equipe nas boas práticas do XP.

    Pode atuar na implementação, mas a sua função principal é assegurar o bom funcionamento do processo e buscar formas demelhorá-lo continuamente.

  • 8/18/2019 XP Faculdade Evolução

    43/50

    Equipe 

    Analista de Teste

    É responsável por ajudar o cliente a escreveros testes de aceitação.

    Quando o teste não é automático, ele deveexecutar os testes diversas vezes ao longo dasiterações.

  • 8/18/2019 XP Faculdade Evolução

    44/50

    Equipe 

    Redator Técnico

     Ajuda a equipe a documentar o sistema.

     A equipe pode fazer documentação, mas a preocupação

     principal deve ser o código.

    O redator é quem faz a maior parte do trabalho dedocumentação.

  • 8/18/2019 XP Faculdade Evolução

    45/50

    Equipe 

    Desenvolvedor

    É a pessoa que analisa, projeta e codifica.

    Não existe distinção entre analista, projetista

    e programadores.

    O desenvolvedor faz estes diferentes papéisem diversos momentos do projeto.

  • 8/18/2019 XP Faculdade Evolução

    46/50

    Quando não usar XP 

    Sistemas de premiação individuais

    Contratos de escopo fechado

    Clientes que fazem questão de um grande número de artefat

    Empresas onde os layouts de escritórios são fixos

  • 8/18/2019 XP Faculdade Evolução

    47/50

    Quando não usar XP 

    Quando não se tem apoio das pessoas que dec

    Equipes grandes e espalhadas geograficam

    Situações onde não se tem controle sobre o código (sistleg

    Situações onde o feedback é demo

  • 8/18/2019 XP Faculdade Evolução

    48/50

    Como implantar 

  • 8/18/2019 XP Faculdade Evolução

    49/50

    Como implantar 

    Uma prática de cada vezEnfatize o problema mais importante

    Dificuldades culturaisDeixar alguém mexer no seu código

    Trabalhar em pares

    Dificuldades devido a mudança de hábitosManter as coisas simples (e não tentar prever o futuro escrevendo "design flex

     Jogar fora código desnecessário

    Escrever testes antes de codificar

    Refatorar com frequência (vencer o medo)

  • 8/18/2019 XP Faculdade Evolução

    50/50

    XP - Extreme Programming 

    Obrigad