Post on 06-Jul-2018
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