extreme programming

37
Extreme Programming XP by Vitor Castro [email protected] sábado, 28 de setembro de 13

Upload: vitor-castro

Post on 05-Dec-2014

409 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Extreme programming

Extreme ProgrammingXP

by Vitor [email protected]

sábado, 28 de setembro de 13

Page 2: Extreme programming

Problemas no desenvolvimento de software: risco

Deslize de cronogramas

Projeto cancelado

O sistema “azeda”Taxas de erros

Negócio mal compreendido

Modificações no negócio

Falsa riqueza de funções

sábado, 28 de setembro de 13

Page 3: Extreme programming

sábado, 28 de setembro de 13

Page 4: Extreme programming

sábado, 28 de setembro de 13

Page 5: Extreme programming

O que é ?

sábado, 28 de setembro de 13

Page 6: Extreme programming

O que é XP ?

• Metodologia leve para times pequenos e médios

• Principal atividade de um projeto de software é a codificação

• Uso disciplinado das práticas-modelos

• Times de dois a dez programadores

sábado, 28 de setembro de 13

Page 7: Extreme programming

Por que o eXtreme ?

• Princípios e práticas do senso comum a níveis eXtremos

• revisão de código

• testes

• simplicidade

• arquitetura

• interações curtas ...

sábado, 28 de setembro de 13

Page 8: Extreme programming

Por onde começar ?

sábado, 28 de setembro de 13

Page 9: Extreme programming

sábado, 28 de setembro de 13

Page 10: Extreme programming

Valores

• Comunicação

• Simplicidade

• Feedback

• Coragem

• Respeito

sábado, 28 de setembro de 13

Page 11: Extreme programming

Comunicação

sábado, 28 de setembro de 13

Page 12: Extreme programming

Simplicidade

• Qual a coisa mais simples que poderia funcionar ?

• Simplicidade não é fácil.

sábado, 28 de setembro de 13

Page 13: Extreme programming

Feedback

• Utilização mais cedo possível do software

• Desenvolvedor para cliente e vice-versa.

• Feedback em todas as escalas de tempo

• minutos / dia / semana / mês

sábado, 28 de setembro de 13

Page 14: Extreme programming

Coragem

• Ex.:

• Contrato de escopo variado

• Assumir atraso e problemas

• Refatoração contínua

• Programação em par

sábado, 28 de setembro de 13

Page 15: Extreme programming

Respeito

• “Respeitar o ponto de vista do outro é essencial para que um projeto de software seja bem sucedido”

sábado, 28 de setembro de 13

Page 16: Extreme programming

Princípios

• Feedback rápido

• Simplicidade presumida

• Mudanças incrementais

• Aceitação a mudanças

• Alta qualidade

sábado, 28 de setembro de 13

Page 17: Extreme programming

Como aplicar ?

sábado, 28 de setembro de 13

Page 18: Extreme programming

usando as práticas !!!

sábado, 28 de setembro de 13

Page 19: Extreme programming

Práticas do XP• Jogo de planejamento

• Entregas frequentes

• Metáfora

• Programação em pares

• Propriedade coletiva

• Integração contínua

• Cliente presente

• Projeto simples

• Testes

• Refatoração

• Padrões de codificação

• Stand up meeting

sábado, 28 de setembro de 13

Page 20: Extreme programming

Jogo de planejamento

• Escopo para a próxima versão

• Estimativas

• Priorização

• User Story

sábado, 28 de setembro de 13

Page 21: Extreme programming

Entregas frequentes

• Requisito de maior valor para o negócio

• Reduzir o tempo do ciclo de entregas

sábado, 28 de setembro de 13

Page 22: Extreme programming

Metáfora

• Ajuda a equipe e os envolvidos no entendimento dos elementos básicos e seus relacionamentos

sábado, 28 de setembro de 13

Page 23: Extreme programming

Programação em pares

• “Duas pessoas, uma máquina, um teclado e um mouse”

sábado, 28 de setembro de 13

Page 24: Extreme programming

Propriedade coletiva

• “Todos são responsáveis pelo sistema inteiro”

sábado, 28 de setembro de 13

Page 25: Extreme programming

Integração contínua

• O código é integrado e testado sempre.

sábado, 28 de setembro de 13

Page 26: Extreme programming

Cliente presente

• “Pessoa que realmente vai usar o sistema quando estiver em produção”

sábado, 28 de setembro de 13

Page 27: Extreme programming

Projeto simples• É aquele que:

• Executa todos os testes

• Não tem lógica duplicada

• Expressa todas as intenções importante para os programadores

• Tem menor número possível de classes e métodos

• “Implemente para hoje, projete para o amanhã”

sábado, 28 de setembro de 13

Page 28: Extreme programming

Teste• Levar a atividade de Teste ao eXtremo

• Qualquer função que não tenha teste simplesmente não existe

sábado, 28 de setembro de 13

Page 29: Extreme programming

Refatoração

• Melhoria do código sem alteração no comportamento

sábado, 28 de setembro de 13

Page 30: Extreme programming

Padrões de codificação

• O time define a forma como vai desenvolver (nomeclatura, padrões ...)

sábado, 28 de setembro de 13

Page 31: Extreme programming

Stand up meeting

sábado, 28 de setembro de 13

Page 32: Extreme programming

Papéis

• Programador

• Treinador (Coach)

• Tracker

• Testador

• Cliente

sábado, 28 de setembro de 13

Page 33: Extreme programming

Ciclo de vida

sábado, 28 de setembro de 13

Page 34: Extreme programming

“As peças individuais são simples. A riqueza vem da interação entre

as partes” (Beck, 2004)

sábado, 28 de setembro de 13

Page 35: Extreme programming

Associação do XP com SCRUM

sábado, 28 de setembro de 13

Page 36: Extreme programming

Referências

• http://www.extremeprogramming.org/

• Beck, K. Programação eXtrema (XP) explicada - acolha as mudanças (2004)

• Sbrocco, J. Macedo, P. Métodologias Ágeis - Engenharia de software sob medida (2012)

• Teles, V. Extreme Programming (2004)

sábado, 28 de setembro de 13

Page 37: Extreme programming

Referência das imagens• http://www.threeriversinstitute.org/Extreme%20Programming%20in%20Pictures.htm

• http://www.oficinadanet.com.br/artigo/gerencia/extreme_programming_xp_em_2_minutos

• http://improveit.com.br/

• http://www.xpce.org/

• http://paraibacooperativo.wordpress.com/cooperativismo-duvidas-frequentes/

• http://desenvolvimentoagil.com.br/xp/praticas/refatoracao

• http://www.slideshare.net/luizclaudiosilva/praticas-geis-de-desenvolvimento-de-software-v3

• http://infortecsolutions.com.br/otimizacao-de-sites

• http://www.cafeagile.com.br/wp-content/uploads/2012/01/standup2.jpg

• http://www.devmedia.com.br/ferramentas-de-integracao-continua-tornando-o-trabalho-de-equipes-mais-organizado-engenharia-de-software-7/11035

sábado, 28 de setembro de 13