Extreme programming

Post on 05-Dec-2014

409 views 2 download

description

 

Transcript of Extreme programming

Extreme ProgrammingXP

by Vitor Castrovitorcastro@me.com

sábado, 28 de setembro de 13

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

sábado, 28 de setembro de 13

sábado, 28 de setembro de 13

O que é ?

sábado, 28 de setembro de 13

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

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

Por onde começar ?

sábado, 28 de setembro de 13

sábado, 28 de setembro de 13

Valores

• Comunicação

• Simplicidade

• Feedback

• Coragem

• Respeito

sábado, 28 de setembro de 13

Comunicação

sábado, 28 de setembro de 13

Simplicidade

• Qual a coisa mais simples que poderia funcionar ?

• Simplicidade não é fácil.

sábado, 28 de setembro de 13

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

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

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

Princípios

• Feedback rápido

• Simplicidade presumida

• Mudanças incrementais

• Aceitação a mudanças

• Alta qualidade

sábado, 28 de setembro de 13

Como aplicar ?

sábado, 28 de setembro de 13

usando as práticas !!!

sábado, 28 de setembro de 13

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

Jogo de planejamento

• Escopo para a próxima versão

• Estimativas

• Priorização

• User Story

sábado, 28 de setembro de 13

Entregas frequentes

• Requisito de maior valor para o negócio

• Reduzir o tempo do ciclo de entregas

sábado, 28 de setembro de 13

Metáfora

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

sábado, 28 de setembro de 13

Programação em pares

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

sábado, 28 de setembro de 13

Propriedade coletiva

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

sábado, 28 de setembro de 13

Integração contínua

• O código é integrado e testado sempre.

sábado, 28 de setembro de 13

Cliente presente

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

sábado, 28 de setembro de 13

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

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

Refatoração

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

sábado, 28 de setembro de 13

Padrões de codificação

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

sábado, 28 de setembro de 13

Stand up meeting

sábado, 28 de setembro de 13

Papéis

• Programador

• Treinador (Coach)

• Tracker

• Testador

• Cliente

sábado, 28 de setembro de 13

Ciclo de vida

sábado, 28 de setembro de 13

“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

Associação do XP com SCRUM

sábado, 28 de setembro de 13

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

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