• Nenhum resultado encontrado

XP

N/A
N/A
Protected

Academic year: 2021

Share "XP"

Copied!
36
0
0

Texto

(1)

Engenharia de Software

XP – eXtreme Programming

Prof. José Jorge Dias

Departamento de Ciências Exatas

(2)

Qualidade de Software

• Por que estudar o XP?

(3)

eXtreme Programming (XP)

• “

Metodologia ágil

para equipes pequenas a

médias desenvolvendo software com

requisitos

vagos

ou que

mudam freqüentemente

.” [Beck

2000]

• A

codificação

é a principal atividade

• Partes do XP:

– Valores – Princípios – Práticas

• XP pega essas

práticas do senso comum

e as

utiliza a

níveis extremos

(4)

Os 4 Valores da XP

• São as diretrizes da XP

• Define as

atitudes

da equipe XP

– Feedback

– Comunicação

– Simplicidade

– Coragem

(5)

Feedback

• Garante um rápido feedback sobre várias etapas do desenvolvimento

– O desenvolvedores sabem sobre a qualidade do código e do sistema

– Clientes sabem se os requisitos foram desenvolvidos

– Os desenvolvedores sabem as decisões e os problemas do projeto

• O cliente está o tempo todo em contato com a equipe • possibilita que as pessoas aprendam cada vez mais

sobre o sistema e assim corrijam os erros e melhorem o sistema

(6)

Comunicação

• Muitos problemas são causados porque

alguém não se comunicou com outro

• Uso

mínimo de documentação

e uso

máximo

de cara-a-cara

• Preferência a

comunicação ágil

• O próprio

código

é uma

forma de

comunicação

• Membros

introvertidos não são aconselháveis

(7)

Simplicidade

• “faça a coisa

mais simples que funcione

• Evita-se suposições

– Evita-se a criação de requisitos antecipados

• Faz-se o necessário

para entregar o requisito

do cliente

• Usa-se as tecnologias, algoritmos e técnicas

(8)

Coragem

• Necessária para que realmente se aplique XP

como deve ser aplicada

• Exemplos de atitude que exigem coragem:

– alterar código já escrito e que está funcionando – jogar código fora e reescrever tudo de novo

– permitir código compartilhado por todos – pedir ajuda a quem sabe mais

– ter a documentação em forma de código

– colocar desenvolvedores e clientes frente a frente – investir tempo em refactoring

(9)

Respeito

• Sustenta os 4 valores do XP

• Cada integrante precisa

– Saber Ouvir

– Saber compreender

– Respeitar o ponto de vista do outro

– Ter empatia pelo próximo

(10)

Princípios da XP

• Valores são abstratos demais para serem seguidos

– Conecta os valores às práticas do XP

• Princípios que as equipes que querem adotar XP devem seguir

• Ajuda na identificação de soluções de problemas

– A solução deve atender os princípios

• Os princípios são: – Feedback rápido – Assumir simplicidade – Mudança incremental – Abraçando mudanças – Trabalho de qualidade

(11)

Princípios da XP

• Feedback rápido

– Os participantes devem estar sempre se comunicando para facilitar o aprendizado coletivo

• Assumir simplicidade

– Deixe o seu modelo tão simples quanto possível e assuma que a solução mais simples é a melhor

• Mudança incremental

– O modelo não será perfeito na primeira tentativa, ele irá mudar de acordo com o desenvolvimento do

(12)

Princípios da XP

• Abraçando mudanças

– XP procura facilitar o ato de incluir alterações

através do uso de vários princípios e práticas

– Mudanças devem ser sempre bem vindas

independentemente do estágio de evolução do

projeto

• Trabalho de qualidade

– qualidade

não é um critério opcional, mas sim

obrigatório

(13)

Estórias do Usuário (User Stories)

• Representa os

requisitos do cliente

– Evita documentação pesada de um DDR

– escritas pelos clientes, como tarefas que o sistema

deve efetuar

– sem jargões

– usadas para criar estimativas de tempo, também

geram testes de aceitação

– um ou mais testes de aceitação devem ser escritos

para cada estória de uso

(14)

Exemplo

• "Uma palavra-chave não deve aceitar caracteres que não os A-Z, a-z e 0-9."

• "Depois de registrado, o cliente deve receber uma confirmação provisória do registro."

• "Se o código de utilizador estiver errado, o cliente deve ser informado do motivo."

“Um cliente deve-se registrar indicando como código de utilizador o e-mail e escolhendo uma palavra-chave alfa-numérica."

(15)

Estórias do Usuário (User Stories)

(16)

Práticas da XP

• Processo de

planejamento (Planning

Game)

• Releases curtos

• Metáfora

• Projeto simples

• Testes

• Refactoring

• Stand up meeting

• Programação em pares

• Propriedade coletiva do

código

• Integração contínua

• Semana de 40 horas

• On-site customer

(Cliente sempre

presente)

• Padrões de codificação

(17)

Cliente sempre presente

• Um

cliente

deve estar

sempre presente

– ajuda a equipe a responder questões

– resolver disputas

– colocar pequenas prioridades em tarefas.

• Sua

ausência

é um

risco

ao projeto

• As

funcionalidades

do sistema são descritas

brevemente em

estórias

– É necessário que o cliente esteja presente para

tirar as dúvidas sobre elas (Feedback)

(18)

Jogo do planejamento (Planning

Game)

• Planejamento de

releases

e

iterações

– Baseadas em estórias do usuário – As estórias são medidas

– Métrica utilizada: pontos (dias ideais)

• Um dia trabalhando sem nenhuma interferência externa • É aconselhável que uma estória tenha no máximo 4 pontos

– Um conjunto de estórias são definidas para serem desenvolvidas em uma release

– Cada release pode ter uma ou mais iterações – Iterações possuem de 1 a 3 semanas

• Possui um conjunto de estórias a serem desenvolvidas • As estórias podem ser quebradas em atividades

(19)

Jogo do planejamento (Planning

Game)

• Envolve equipe de negócio e equipe técnica

• A equipe deve trabalhar naquilo que tem mais

valor de negócio para o cliente

(20)

Releases pequenos/curtos

• Quanto menor a release, mais feedback

– Possibilita o aprendizado

– Maior correção de defeitos

(21)

Metáfora

• A metáfora é um meio de ajudar a

todos(clientes e desenvolvedores) a

compreender melhor o objetivo e propósito

do produto sendo criado.

• Pode ser uma analogia com algum outro

sistema (computacional, natural, abstrato)

que facilite a comunicação entre os membros

da equipe e cliente

(22)

Programação em pares

• Uma técnica onde dois desenvolvedores

trabalham no

mesmo problema

, ao

mesmo

tempo

e no

mesmo computador

– Condutor (piloto): digita

– Navegador (co-piloto): acompanha – Papéis são alternados

– Pares são trocados periodicamente

• O navegador revisa o que o condutor digita

• Troca de experiências e ideias

entre os

desenvolvedores

– Todos aprendem sobre o sistema – Código com mais qualidade

(23)

Propriedade coletiva do código

• Encoraja

a equipe inteira a trabalhar

mais

unida

em busca de

qualidade no código

fazendo melhorias

• Controle de versões

tem um papel

importante!

(24)

Refactoring

• Todo desenvolvedor tem

obrigação

de

melhorar o

código

– duplicado, pouco legível, mal codificado, sem padronização, lento, com código legado ou uso incorreto de outras implementações

• A

alteração não pode mudar o comportamento

do código em questão

• Aumenta a

padronização

e facilita a

manutenção

• Deve ser apoiada pelos

testes automatizados

para verificar se ainda está funcionando

(25)

Testes constantes

• Dois tipos de testes: teste unitário e teste de aceitação • Testes fazem parte da documentação do sistema

• Teste de aceitação

– Verifica se a estória foi implementada de acordo com o que o usuario deseja

• Teste unitário

– Utiliza a abordagem TDD (Test Driven Development) – “Test first, then code”

– Testes automatizados

– Através deles o programador tem coragem de refatorar o código

(26)

Padrões de desenvolvimento

• O

código

também é uma forma da equipe se

comunicar

!

• O código escrito em projetos XP segue um

padrão de codificação

, definido pela equipe

– Padrão para nomes de métodos, classes, variáveis

– Organização do código

– Design patterns

• Facilita o

entendimento

e a

manutenção

do

código

(27)

Projeto (Design) simples

• Foco

no que a

estória

deve fazer

• O projeto se inicia simples e se mantém simples

– Vai melhorando com os refactorings

• Implementação ideal

é aquela que

– Roda todos os testes

– Expressa todas as idéias que você deseja expressar – Não contém código duplicado

(28)

Integração contínua

• Mantém o sistema

integrado

o tempo todo

• Pode ocorrer

várias vezes

ao dia

• Todos os

testes

devem ser executados

– Testes unitários

– Testes de integração

• Expõe o

estado atual

do desenvolvimento

• Oferece

mais feedback

sobre o sistema

(29)

Stand up meeting

• O dia de trabalho inicia com uma stand up

meeting (

reunião em pé

)

• Aproximadamente

20 min

de duração

– A ideia é que seja rápida!

• Foco

nas

atividades

que serão realizadas e nos

(30)

Ritmo sustentável (Semana de 40

horas)

• Não submete

r os desenvolvedores a

cargas

adicionais

de trabalho

– Horas extras, trabalhos no finais de semana – Utilizar apenas as 40h semanais

• Com o tempo a equipe vai perdendo

rendimento

– Pode-se tornar mais desmotivada – Perda de concentração

– Aumenta o stress na comunicação – Mais falhas na implementação

• A ideia é

respeitar

a individualidade e o físico de

cada um

(31)

Fases do XP

• Fase de exploração

– São analisadas possíveis soluções e a viabilidade

delas

– Possíveis arquiteturas são propostas

– Essa fase é executada até os desenvolvedores

conseguirem uma confiança adequada e estórias

suficientes para iniciar a primeira release

(32)

Fases do XP

• Fase do Planejamento Inicial

– Deve ser usada para que o cliente concorde com a data da primeira entrega das release

• Fase das iterações

– Os casos de testes funcionais de unitários são desenvolvidos

– Desenvolvimento seguindo as práticas vistas

• Fase de produção

– O sistema é colocado no ambiente de produção – Testes de aceitação são descritos para averiguar o

(33)

Fases do XP

• Fase da manutenção

– Inclusão de novas funcionalidades

– Refatoração do código

– Deve ser feito com cautela

• Fase da morte

– As funcionalidades já satisfazem o cliente

– O sistema não consegue mais evoluir e é inviável

continuar

(34)

Papéis no XP

• Não existe papeis definitivos. O XP sugere alguns:

• Treinador (coach)

– Se preocupa com a evolução técnica e evolução do processo

– Deve ser um bom comunicador e ter um bom conhecimento técnico

• Rastreador (tracker)

– O objetivo dele é coletar métricas e verificar possíveis divergências

(35)

Papéis no XP

• Programador

– Analisa, codifica, testa, integra o sistema – Estima as estórias

• Cliente

– Escolhe o que vai agregar ao seu negócio – Prioriza as estórias e as releases

• Testador

– Cria os testes funcionais

– Também pode ser o programador

• Consultor

(36)

Barreiras para o usar o XP

• Cultura

– Equipe acostumada com o desenvolvimento tradicional

• Tamanho da equipe

– Acima de 12 pessoas a comunicação começa a ser afetada drasticamente

• Tecnologia

– Complicado para realizar testes

• Espaço físico

– A equipe precisa estar junta para facilitar a comunicação

• Cliente

Referências

Documentos relacionados

 Ambulância da marca Ford (viatura nº8), de matrícula XJ-23-45, dotada com sirene, luz rotativa e equipamento de comunicação (Emissor/Receptor com adaptador);.  Ambulância da

A menor proporção de uso do SUS para exames preventivos e de diagnóstico precoce, em especial os cânceres de mama e próstata, sugere baixa cobertura populacional que pode

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

(2009), em estudo realizado com a madeira de Araucaria angustifolia, encontrou influência significativa da massa específica sobre a resistência ao impacto, tanto

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Sabendo-se que o tamanho e o peso das plaquetas, hemácias e leucócitos determinam o protocolo mais efetivo para concentrar plaquetas em cada espécie (LÓPEZ et al.,

A comparação da energia média da banda gama nos primeiros 250 ms dos registros obtidos com ou sem adaptação visual mostrou que a energia da banda eletroencefalográfica gama não

O que estamos tentando fazer na PUCRS é atrair, manter e formar os melhores estudantes, criar novos laboratórios de pesquisa, gerar capital intelectual e estimular a interação e