extreme programming eduardo aranha. o surgimento de xp em meados de 1990, kent beck procurou formas...
TRANSCRIPT
![Page 1: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/1.jpg)
eXtreme Programming
Eduardo Aranha
![Page 2: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/2.jpg)
O surgimento de XP
Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software– Identificou o que tornava simples e o que
dificultava o desenvolvimento de software Em Março de 1996, ele iniciou um projeto
com novos conceitos que resultaram na metodologia eXtreme Programming
![Page 3: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/3.jpg)
O que é eXtreme Programming?
Metodologia ágil, leve Desenvolvido para:
– Equipes médias e pequenas (2 a 12 pessoas)– Requisitos vagos e em constante evolução
Possui um conjunto de valores para nortear desenvolvimento
Conjunto de práticas mostra sua estrutura
![Page 4: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/4.jpg)
Foco na satisfação do cliente
Desenvolver o que o cliente precisa no momento que é necessário
![Page 5: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/5.jpg)
Manifesto ágil
Valorização de:– Indivíduos e interação MAIS QUE processos e
ferramentas– Software em funcionamento MAIS QUE
documentação abrangente– Colaboração com o cliente MAIS QUE
negociação de contratos– Responder a mudanças MAIS QUE seguir um
plano
![Page 6: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/6.jpg)
Princípios básicos
Comunicação– Programadores comunicam-se frequentemente
entre si e com os clientes– Devem trabalhar na mesma sala, conversar
pessoalmente ou através de chats, etc. Simplicidade
– Projeto do SW é simplificado continuamente– Processo adaptado, caso algo não esteja
funcionado
![Page 7: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/7.jpg)
Princípios básicos
Feedback– Cliente está sempre participando do
desenvolvimento do sistema– Testes de unidade e de aceitação fornecem
feedback sobre o sistema– Oportunidades e problemas são identificados o
mais rápido possível
![Page 8: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/8.jpg)
Princípios básicos
Coragem– Indicar problemas no projeto, parar quando está
cansado, pedir ajuda quando necessário– Simplificar código que está funcionado, dizer ao
cliente que não será possível implementar um requisito no prazo estimado
– Seguir o XP como deve ser
![Page 9: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/9.jpg)
Práticas e Regras de XP: Planejamento
Estórias de uso– Usados como requisitos do sistema– Mesmo propósito dos casos de uso, porém
menores e mais simples– Escritos na linguagem do cliente com o mínimo
de detalhes para a estimativa de custos– São estimados em “tempo ideal de trabalho”
Deve custar entre 1 e 3 semanas de desenvolvimento
![Page 10: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/10.jpg)
Práticas e Regras de XP: Planejamento
Jogo do planejamento Planejamento de versões
– No início do projeto especifica-se que estórias de uso serão implementadas em cada versão
– Define-se as datas de liberação das versões– Versões são divididas em iterações
![Page 11: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/11.jpg)
Práticas e Regras de XP: Planejamento
Versões frequentes e pequenas– Funcionalidades implementadas são rapidamente
entregues ao cliente– Permite um feedback mais rápido do cliente
reduzindo o impacto de mudanças de requisitos– Versão pode ter inclusive uma única iteração
![Page 12: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/12.jpg)
Práticas e Regras de XP: Planejamento
Iterações– Desenvolvimento dividido em iterações– Possuem duração entre 1 e 3 semanas– Funcionalidades são entregues no final de cada
iteração– Prazos devem ser levados a sério, negocie o
escopo se for necessário
![Page 13: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/13.jpg)
Práticas e Regras de XP: Planejamento
Planejamento de Iterações– Feito no início de cada iteração– Estórias de uso são escolhidas de acordo com a
importância pro cliente e do risco pro projeto– Estórias são divididas em tarefas de 1 a 3 dias– Tarefas são distribuídas entre programadores e
estimadas pelos próprios executores Estimativa preferencialmente baseada no passado Leva-se em conta a programação em pares
![Page 14: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/14.jpg)
Práticas e Regras de XP: Planejamento
Planejamento de Iterações (cont.)– Estórias são adicionadas ou removidas para
completar o tempo da iteração – Usa a velocidade do projeto para transformar
estimativas em tempo ideal para tempo real
![Page 15: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/15.jpg)
Práticas e Regras de XP: Planejamento
Medida da velocidade de projeto– Indica a produtividade da equipe no projeto– Razão entre a o que foi produzido e o que foi
estimado a cada iteração– Pode ser medido durante uma iteração– Variações dramáticas em mais de uma iteração
sugerem renegociação de prazo e escopo das versões
![Page 16: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/16.jpg)
Práticas e Regras de XP: Planejamento
Reuniões rápidas (stand-up meeting)– Faz a comunicação entre toda a equipe para
comunicar problemas, soluções, etc.– Reunião feita em pé com poucos minutos de fala
para cada integrante
![Page 17: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/17.jpg)
Práticas e Regras de XP: Projeto
Simplicidade– Projetos simples tomam menos tempo que os
complexos– Evitar generalizações e abstrações
desnecessárias no momento– É mais rápido e barato
Requisitos mudam frequentemente
![Page 18: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/18.jpg)
Práticas e Regras de XP: Codificação
O cliente está sempre disponível– Não deve só ajudar a equipe de desenvolvimento– Deve ser parte da equipe– Comunicação com o cliente é feita em todas as
fases de um projeto XP Estórias de uso, planejamento de versões, feedback do
sistema, testes de aceitação, etc.
![Page 19: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/19.jpg)
Práticas e Regras de XP: Projeto
Cartões CRC– Class, Responsibilities, and Collaboration– Descrevem as classes e métodos do sistema– Permitem a simulação da execução do sistema
através da invocação dos métodos das classes
![Page 20: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/20.jpg)
Práticas e Regras de XP: Codificação
Programação em pares– Duas pessoas programando em um mesmo
computador pensam melhor que uma– Revezamento: um programa enquanto o outro
projeta e faz revisão on-line do código digitado– Ganho de qualidade compensa o uso de duplas– Auxilia a difusão de conhecimento
![Page 21: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/21.jpg)
Práticas e Regras de XP: Planejamento
Rotação de pares de programadores– Ajuda ainda mais a eliminar as pessoas
consideradas “ilhas de conhecimento”– Cada um da equipe passa a conhecer todas as
partes do sistema– Os pares devem sempre ser encorajados a
trabalhar em partes do sistema desconhecidas por eles
![Page 22: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/22.jpg)
Práticas e Regras de XP: Codificação
Propriedade coletiva do código– Todos são responsáveis por todo código– Permite que pessoas forneçam idéias para toda
parte do sistema– Diminui o risco de possuir pessoas insubstituíveis
no projeto
![Page 23: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/23.jpg)
Práticas e Regras de XP: Projeto
Criar spike solutions para reduzir riscos– Programas muito simples utilizados para verificar
o uso determinadas soluções e tecnologias– Utilizados para reduzir os riscos técnicos do
projeto ou validar as estimativas realizadas
![Page 24: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/24.jpg)
Práticas e Regras de XP: Projeto
Não adicionar funcionalidades antecipadamente– Requisitos mudam rapidamente– Mantém o código limpo de adivinhações sobre o
que pode ser usado no futuro– Mantém a produtividade
![Page 25: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/25.jpg)
Práticas e Regras de XP: Codificação
Código tem sempre que seguir um padrão– Mantém o código consistente e uniforme– Facilita a leitura e entendimento por outros
programadores
![Page 26: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/26.jpg)
Práticas e Regras de XP: Codificação
40 horas semanais– Horas extras não remuneradas prejudicam
motivação da equipe– Ao invés disto, modifique o escopo ou o prazo do
projeto
![Page 27: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/27.jpg)
Práticas e Regras de XP: Testes
Testes unitários– Teste das menores unidades (classes,
métodos, ...) – Identifica bugs no código– Protege o código de manutenções indevidas– Automação dos testes paga o custo da criação
dos testes
![Page 28: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/28.jpg)
Práticas e Regras de XP: Testes
Testes unitários são escritos para detectar bugs identificados– Criação do teste unitário que identifique o bug
antes de corrigí-lo– Bugs tem tendência de ressurgir posteriormente
![Page 29: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/29.jpg)
Práticas e Regras de XP: Codificação
Testes antes da codificação– Limita o escopo da solução a ser implementada– Serve de especificação do código testado– Facilita o entendimento do código a ser criado– Garante que os testes vão ser criados
![Page 30: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/30.jpg)
Práticas e Regras de XP: Codificação
Integração contínua– Módulos do sistema são integrados diversas
vezes ao dia– Todos os testes de unidade são executados– Identificação rápida de bugs inseridos
Programador sabe que trechos de código foram alterados nas últimas horas
![Page 31: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/31.jpg)
Práticas e Regras de XP: Projeto
Fazer refactoring sempre que possível– Reestruturação sem acrescentar funcionalidade– Remove redundâncias e melhora a qualidade do
projeto– Retira códigos não utilizados– Testes unitários “garantem” que código mantém
mesmo comportamento
![Page 32: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/32.jpg)
Práticas e Regras de XP: Testes
Execução periódica de testes de aceitação e publicação de score– Testes de aceitação criados a partir das estórias
de uso a serem implementadas na iteração– Clientes verificam a corretude dos testes escritos– Devem ser automatizados e regressivos
![Page 33: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/33.jpg)
Dependência entre práticas
Algumas práticas possuem inter-dependências– Refactoring: Testes unitários– Rotação de pessoas: programação em pares– Propriedade coletiva de código: refactoring,
testes unitários, integração contínua– 40h semanais: planejamento junto ao cliente– Etc.
![Page 34: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/34.jpg)
Modelagem de XP
Site oficial não tem modelo preciso do processo
Trabalho realizado por Américo no CIn modela XP usando a meta-linguagem SPEM
![Page 35: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/35.jpg)
Meta-linguagem SPEM
Software Process Engeneering Metamodel Padrão formal da OMG aprovado em
novembro de 2002 Apoiado pela Rational, IBM, Computer
Associates e outras Orientado a objetos, utiliza UML como
notação
![Page 36: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/36.jpg)
Principais elementos de SPEM
![Page 37: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/37.jpg)
Principais elementos de SPEM
![Page 38: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/38.jpg)
Diagrama de atividades – Modelagem de XP (parcial)
![Page 39: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/39.jpg)
Diagrama de atividades – Modelagem de XP
![Page 40: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/40.jpg)
Diagrama de atividades – Modelagem de XP
![Page 41: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/41.jpg)
Diagrama de classe – Ponto de vista estático de XP (parcial)
![Page 42: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/42.jpg)
Fluxo de XP mostrado no site oficial
![Page 43: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/43.jpg)
Fluxo de XP
![Page 44: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/44.jpg)
Fluxo de XP
![Page 45: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/45.jpg)
Fluxo de XP
![Page 46: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/46.jpg)
Papeis
Oficiais– Cliente, programador, testador
Outros papéis encontrados em sites sobre XP– Tracker, gerente, goldOwner, goalDonor, ...
![Page 47: EXtreme Programming Eduardo Aranha. O surgimento de XP Em meados de 1990, Kent Beck procurou formas mais simples e eficientes de desenvolver software](https://reader033.vdocuments.mx/reader033/viewer/2022052513/5706386a1a28abb82390445b/html5/thumbnails/47.jpg)
eXtreme Programming
Eduardo Aranha