Extreme Programming - XP

138
Extreme Programming Paulo César M. Jeveaux [email protected] terça-feira, 7 de abril de 2009

Transcript of Extreme Programming - XP

Page 1: Extreme Programming - XP

Extreme Programming

Paulo César M. Jeveaux

[email protected]

terça-feira, 7 de abril de 2009

Page 2: Extreme Programming - XP

Giran Soluções e Ensino

• Consultoria e Treinamento especialidados

• Java

• Ruby on Rails

• Desenvolvimento ágil

• Gerenciamento de projetos com SCRUM

• Profissionais altamente qualificados

• Participação ativa na comunidade

• http://www.giran.com.br

terça-feira, 7 de abril de 2009

Page 3: Extreme Programming - XP

Jeveaux• CEO da Giran

• Desenvolvedor Java há 8++ anos

• Fundador do ESJUG e Agile-ES

• Administrador do PortalJava.com

• Palestrante e evangelista Java

• Entusiasta Ruby, Rails, Python e Agile

• Curioso e aprendendo Erlang

terça-feira, 7 de abril de 2009

Page 4: Extreme Programming - XP

Sobre o que vamos falar hoje...

terça-feira, 7 de abril de 2009

Page 5: Extreme Programming - XP

Desenvolvimento de Software

terça-feira, 7 de abril de 2009

Page 6: Extreme Programming - XP

Desenvolvimento de Software

(pré) Processo tradicional

terça-feira, 7 de abril de 2009

Page 7: Extreme Programming - XP

Desenvolvimento de Software

(pré) Processo tradicional

Manifesto Ágil

terça-feira, 7 de abril de 2009

Page 8: Extreme Programming - XP

Desenvolvimento de Software

(pré) Processo tradicional

Manifesto Ágil

XP

terça-feira, 7 de abril de 2009

Page 9: Extreme Programming - XP

Code and fix!terça-feira, 7 de abril de 2009

Page 10: Extreme Programming - XP

• Sem metodologia de desenvolvimento

• Procedural e estruturada

• Grande dificuldade para mostrar e simular a relação entre o código (entidades) e o negócio

[Cristiano Milfont]

terça-feira, 7 de abril de 2009

Page 11: Extreme Programming - XP

O processo tradicional

terça-feira, 7 de abril de 2009

Page 12: Extreme Programming - XP

Unificação de Processosterça-feira, 7 de abril de 2009

Page 13: Extreme Programming - XP

• Criação de processos unificados (*UP)

• Direcionados a casos de uso

• Centrados na arquitetura

• Iterativos e incrementais

• Utilização da linguagem UML

• Fases bem definidas, como na engenharia civil

• Concepção, elaboração, construção e transição

[Cristiano Milfont]

terça-feira, 7 de abril de 2009

Page 14: Extreme Programming - XP

Quase sempre a civil

Inspirado em outrasengenharias

terça-feira, 7 de abril de 2009

Page 15: Extreme Programming - XP

Quase sempre a civil

Inspirado em outrasengenharias

terça-feira, 7 de abril de 2009

Page 16: Extreme Programming - XP

Quase sempre a civil

Inspirado em outrasengenharias

terça-feira, 7 de abril de 2009

Page 17: Extreme Programming - XP

Dá pra afastar um pouquinho?

terça-feira, 7 de abril de 2009

Page 18: Extreme Programming - XP

Custo de mudanças

terça-feira, 7 de abril de 2009

Page 19: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 20: Extreme Programming - XP

BDUFbig design up front

terça-feira, 7 de abril de 2009

Page 21: Extreme Programming - XP

BDUFbig design up front

is the evil!terça-feira, 7 de abril de 2009

Page 22: Extreme Programming - XP

nós estamos jogando

com as regras erradas!

terça-feira, 7 de abril de 2009

Page 23: Extreme Programming - XP

“A maioria das nossas suposições sobre negócios, tecnologia e organizações têm pelo menos 50 anos. Elas tem sobrevivido ao seu tempo. Como resultado, estamos pregando, ensinando, e praticando políticas que estão cada vez mais desalinhadas com a realidade, e são contra produtivas.”

Peter Drucker (1909-2005)

terça-feira, 7 de abril de 2009

Page 24: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 25: Extreme Programming - XP

Não é assim que se faz software

terça-feira, 7 de abril de 2009

Page 26: Extreme Programming - XP

Não é assim que se faz software

Acredite!

terça-feira, 7 de abril de 2009

Page 27: Extreme Programming - XP

Manifesto ÁgilEstamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar:

Indivíduos e interação entre eles mais que processos e ferramentasSoftware em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratosResponder a mudanças mais que seguir um plano

Ou seja, mesmo havendo valor nos itens à direita,valorizamos mais os itens à esquerda.

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, JamesGrenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor,

Ken Schwaber, Jeff Sutherland, Dave Thomas

©2001, Autores acima citados.

Esta declaração pode ser livremente copiada, sob qualquer forma,mas apenas na sua totalidade através do presente aviso.

terça-feira, 7 de abril de 2009

Page 28: Extreme Programming - XP

XPExtreme Progamming

terça-feira, 7 de abril de 2009

Page 29: Extreme Programming - XP

O que é XP?terça-feira, 7 de abril de 2009

Page 30: Extreme Programming - XP

Sempre7%

Frequentemente13%

Às vezes16%

Raramente19%

Nunca45%

Utilização de funcionalidades de software

terça-feira, 7 de abril de 2009

Page 31: Extreme Programming - XP

Raramente19%

Nunca45%

desperdício

terça-feira, 7 de abril de 2009

Page 32: Extreme Programming - XP

Sempre7%

Frequentemente13%

Pareto

20% das funcionalidadesgeram 80% do valor

terça-feira, 7 de abril de 2009

Page 33: Extreme Programming - XP

XP é a arte de maximizar a quantidade de software que

você não vai fazerVinícius Manhães Teles - ImproveIt

terça-feira, 7 de abril de 2009

Page 34: Extreme Programming - XP

Extreme ProgrammingÉ um conjunto de princípios, valores e práticas

terça-feira, 7 de abril de 2009

Page 35: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 36: Extreme Programming - XP

Onde...

terça-feira, 7 de abril de 2009

Page 37: Extreme Programming - XP

Onde...

... os princípios conectam os valores às práticas

terça-feira, 7 de abril de 2009

Page 38: Extreme Programming - XP

• O XP é uma metodologia rigorosa e disciplinada que requer o cumprimento de suas práticas para o sucesso na adoção.

• O XP pode ser usado com CMM e UPs.

• A preocupação não é com qualidade (que deve natural) e sim com a saúde do sistema (segundo Kent Beck).

[Cristiano Milfont]

terça-feira, 7 de abril de 2009

Page 39: Extreme Programming - XP

Valores

terça-feira, 7 de abril de 2009

Page 40: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 41: Extreme Programming - XP

Comunicação *

terça-feira, 7 de abril de 2009

Page 42: Extreme Programming - XP

Comunicação *

Coragem *

terça-feira, 7 de abril de 2009

Page 43: Extreme Programming - XP

Comunicação *

Coragem *

Feedback *

terça-feira, 7 de abril de 2009

Page 44: Extreme Programming - XP

Comunicação *

Coragem *

Feedback *

Respeito *

terça-feira, 7 de abril de 2009

Page 45: Extreme Programming - XP

Comunicação *

Coragem *

Feedback *

Respeito *

Simplicidade *terça-feira, 7 de abril de 2009

Page 46: Extreme Programming - XP

Princípios

terça-feira, 7 de abril de 2009

Page 47: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 48: Extreme Programming - XP

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 49: Extreme Programming - XP

* Benefício mútuo

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 50: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 51: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 52: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 53: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 54: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 55: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria* Auto semelhança

terça-feira, 7 de abril de 2009

Page 56: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 57: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Passos de bebê

* Auto semelhança

terça-feira, 7 de abril de 2009

Page 58: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Passos de bebê

* Auto semelhança

* Qualidade

terça-feira, 7 de abril de 2009

Page 59: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Passos de bebê

* Auto semelhança

* Qualidade

* Redundância

terça-feira, 7 de abril de 2009

Page 60: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Passos de bebê

* Auto semelhança

* Qualidade

* Redundância

* Reflexão

terça-feira, 7 de abril de 2009

Page 61: Extreme Programming - XP

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Passos de bebê

* Auto semelhança

* Qualidade

* Redundância

* Reflexão

* Responsabilidade

terça-feira, 7 de abril de 2009

Page 62: Extreme Programming - XP

PráticasPrimárias

terça-feira, 7 de abril de 2009

Page 63: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 64: Extreme Programming - XP

Ambiente informativo *

terça-feira, 7 de abril de 2009

Page 65: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

terça-feira, 7 de abril de 2009

Page 66: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

terça-feira, 7 de abril de 2009

Page 67: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

terça-feira, 7 de abril de 2009

Page 68: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

terça-feira, 7 de abril de 2009

Page 69: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

terça-feira, 7 de abril de 2009

Page 70: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

terça-feira, 7 de abril de 2009

Page 71: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

terça-feira, 7 de abril de 2009

Page 72: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

* Histórias

terça-feira, 7 de abril de 2009

Page 73: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

* Histórias

* Integração contínua

terça-feira, 7 de abril de 2009

Page 74: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

* Histórias

* Integração contínua

* Programação em par

terça-feira, 7 de abril de 2009

Page 75: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

* Histórias

* Integração contínua

* Programação em par

* Sentar-se junto

terça-feira, 7 de abril de 2009

Page 76: Extreme Programming - XP

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

* Histórias

* Integração contínua

* Programação em par

* Sentar-se junto

* Trabalho energizado

terça-feira, 7 de abril de 2009

Page 77: Extreme Programming - XP

PráticasCorolárias: consequências

terça-feira, 7 de abril de 2009

Page 78: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 79: Extreme Programming - XP

análise da raiz do problema *

terça-feira, 7 de abril de 2009

Page 80: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

terça-feira, 7 de abril de 2009

Page 81: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

terça-feira, 7 de abril de 2009

Page 82: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

terça-feira, 7 de abril de 2009

Page 83: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

terça-feira, 7 de abril de 2009

Page 84: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

terça-feira, 7 de abril de 2009

Page 85: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

terça-feira, 7 de abril de 2009

Page 86: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

terça-feira, 7 de abril de 2009

Page 87: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

implantação diária *

terça-feira, 7 de abril de 2009

Page 88: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

implantação diária *

implantação incremental *

terça-feira, 7 de abril de 2009

Page 89: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

implantação diária *

implantação incremental *

pagar por uso *terça-feira, 7 de abril de 2009

Page 90: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

implantação diária *

implantação incremental *

pagar por uso *

* Reunião em pé

terça-feira, 7 de abril de 2009

Page 91: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

implantação diária *

implantação incremental *

pagar por uso *

* Reunião em pé

* Metáfora

terça-feira, 7 de abril de 2009

Page 92: Extreme Programming - XP

análise da raiz do problema *

base de código unificada *

código coletivo *

código com testes *

continuidade da equipe *

escopo negociável *

envolvimento real do cliente *

equipes que encolhem *

implantação diária *

implantação incremental *

pagar por uso *

* Reunião em pé

* Metáfora

* Refatoração

terça-feira, 7 de abril de 2009

Page 93: Extreme Programming - XP

A metodologia em prática

terça-feira, 7 de abril de 2009

Page 94: Extreme Programming - XP

primeiro passo

terça-feira, 7 de abril de 2009

Page 95: Extreme Programming - XP

chega de cascata!terça-feira, 7 de abril de 2009

Page 96: Extreme Programming - XP

Cliente presenteterça-feira, 7 de abril de 2009

Page 97: Extreme Programming - XP

de quem é a responsabilidade?

terça-feira, 7 de abril de 2009

Page 98: Extreme Programming - XP

de quem é a responsabilidade?

é nossa

terça-feira, 7 de abril de 2009

Page 99: Extreme Programming - XP

planejamento iterativoterça-feira, 7 de abril de 2009

Page 100: Extreme Programming - XP

planejamento de releasesterça-feira, 7 de abril de 2009

Page 101: Extreme Programming - XP

Entrega 1

Entrega 3

Entrega 2

planejamentoinicial

8 semanas

terça-feira, 7 de abril de 2009

Page 102: Extreme Programming - XP

terça-feira, 7 de abril de 2009

Page 103: Extreme Programming - XP

Entrega 1

Entrega 3

Entrega 2

iterações

1 2 3 ...

1 semana

terça-feira, 7 de abril de 2009

Page 104: Extreme Programming - XP

a iteração

terça-feira, 7 de abril de 2009

Page 105: Extreme Programming - XP

comecejogando

terça-feira, 7 de abril de 2009

Page 106: Extreme Programming - XP

comecejogando

terça-feira, 7 de abril de 2009

Page 107: Extreme Programming - XP

cliente escreve as históriasterça-feira, 7 de abril de 2009

Page 108: Extreme Programming - XP

jogue mais uma vez

planningpoker

terça-feira, 7 de abril de 2009

Page 109: Extreme Programming - XP

priorizeterça-feira, 7 de abril de 2009

Page 110: Extreme Programming - XP

quadro de históriasterça-feira, 7 de abril de 2009

Page 111: Extreme Programming - XP

durante a semana...

terça-feira, 7 de abril de 2009

Page 112: Extreme Programming - XP

tarefas visuaisterça-feira, 7 de abril de 2009

Page 113: Extreme Programming - XP

reunião diária - em péterça-feira, 7 de abril de 2009

Page 114: Extreme Programming - XP

a modelagemé visual

UML

e a documentaçãotambém

terça-feira, 7 de abril de 2009

Page 115: Extreme Programming - XP

...a semana continua...

terça-feira, 7 de abril de 2009

Page 116: Extreme Programming - XP

...a semana continua...

a equipe colaboraentre si

terça-feira, 7 de abril de 2009

Page 117: Extreme Programming - XP

...a semana continua...

a equipe colaboraentre si

o cliente avalia

terça-feira, 7 de abril de 2009

Page 118: Extreme Programming - XP

...a semana continua...

a equipe colaboraentre si

o cliente avalia

histórias terminam

terça-feira, 7 de abril de 2009

Page 119: Extreme Programming - XP

...a semana continua...

a equipe colaboraentre si

o cliente avalia

histórias terminam

e outrascomeçam

terça-feira, 7 de abril de 2009

Page 120: Extreme Programming - XP

...e a iteração termina

com a aprovação do clienteou não

terça-feira, 7 de abril de 2009

Page 121: Extreme Programming - XP

retrospectivaterça-feira, 7 de abril de 2009

Page 122: Extreme Programming - XP

e uma nova iteração recomeça

terça-feira, 7 de abril de 2009

Page 123: Extreme Programming - XP

adapte-seterça-feira, 7 de abril de 2009

Page 124: Extreme Programming - XP

teste tudo antes - TDDterça-feira, 7 de abril de 2009

Page 125: Extreme Programming - XP

Coragem

insensatez confiança

terça-feira, 7 de abril de 2009

Page 126: Extreme Programming - XP

Programação em par• Todo código é escrito em par

• Um digita, enquanto o outro revisa, corrige e sugere

• Redução drástica de bugs

• Disseminação de conhecimento

• Pressão do par

• Simplicidade

• Velocidade

terça-feira, 7 de abril de 2009

Page 127: Extreme Programming - XP

Velocidadeterça-feira, 7 de abril de 2009

Page 128: Extreme Programming - XP

bad smellterça-feira, 7 de abril de 2009

Page 129: Extreme Programming - XP

refatoreterça-feira, 7 de abril de 2009

Page 130: Extreme Programming - XP

SCRUM e XPNão os confunda. SCRUM e XP se

complementam muito bem, mas são diferentes.

terça-feira, 7 de abril de 2009

Page 131: Extreme Programming - XP

Semelhanças: SCRUM e XP

SCRUM XP

Sprint

Sprint Planning

Daily SCRUM

Retrospective

Iteraction

Iteraction Planning

Stand-up Meeting

Reflection

terça-feira, 7 de abril de 2009

Page 132: Extreme Programming - XP

quer boas notícias?

terça-feira, 7 de abril de 2009

Page 133: Extreme Programming - XP

Quem usa isso?

• Google• Yahoo!• Electronic Arts• Lockheed Martin• Phillips• Siemens• Nokia• BBC• Oracle• Microsoft• ThoughtWorks• Toyota• Globo • ... e outras milhares de empresas no mundo todo!

terça-feira, 7 de abril de 2009

Page 134: Extreme Programming - XP

agora suporte as màs

• Seus amigos não vão acreditar em você

• Seu chefe não vai gostar

• O chefe do seu chefe não pode nem sonhar que isso existe

terça-feira, 7 de abril de 2009

Page 135: Extreme Programming - XP

dúvidas?

terça-feira, 7 de abril de 2009

Page 136: Extreme Programming - XP

Referências• Fotos

• ImproveIt - http://www.improveit.com.br

• Materiais

• Extreme Programming - http://extremeprogramming.org

• Igor Macaubas e Marcos Pereira - http://www.slideshare.net/macaubas/seminario-scrum-presentation

• ImproveIt - http://www.improveit.com.br/scrum

• ImproveIt - http://www.improveit.com.br/xp

• Manifesto Ágil - http://manifestoagil.com.br

• Guilherme Chapiewski - http://www.slideshare.net/gchapiewski/desenvolvimento-gil-com-xp-e-scrum-presentation

• Cristiano Milfont - http://www.slideshare.net/cmilfont/extreme-programming-148802

terça-feira, 7 de abril de 2009

Page 137: Extreme Programming - XP

Obrigado!podem acordar

terça-feira, 7 de abril de 2009

Page 138: Extreme Programming - XP

Extreme Programming

Paulo César M. Jeveaux

[email protected]

terça-feira, 7 de abril de 2009