Extreme Programming - XP

Post on 19-May-2015

2.126 views 0 download

Transcript of Extreme Programming - XP

Extreme Programming

Paulo César M. Jeveaux

paulo.jeveaux@giran.com.br

terça-feira, 7 de abril de 2009

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

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

Sobre o que vamos falar hoje...

terça-feira, 7 de abril de 2009

Desenvolvimento de Software

terça-feira, 7 de abril de 2009

Desenvolvimento de Software

(pré) Processo tradicional

terça-feira, 7 de abril de 2009

Desenvolvimento de Software

(pré) Processo tradicional

Manifesto Ágil

terça-feira, 7 de abril de 2009

Desenvolvimento de Software

(pré) Processo tradicional

Manifesto Ágil

XP

terça-feira, 7 de abril de 2009

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

• 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

O processo tradicional

terça-feira, 7 de abril de 2009

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

• 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

Quase sempre a civil

Inspirado em outrasengenharias

terça-feira, 7 de abril de 2009

Quase sempre a civil

Inspirado em outrasengenharias

terça-feira, 7 de abril de 2009

Quase sempre a civil

Inspirado em outrasengenharias

terça-feira, 7 de abril de 2009

Dá pra afastar um pouquinho?

terça-feira, 7 de abril de 2009

Custo de mudanças

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

BDUFbig design up front

terça-feira, 7 de abril de 2009

BDUFbig design up front

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

nós estamos jogando

com as regras erradas!

terça-feira, 7 de abril de 2009

“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

terça-feira, 7 de abril de 2009

Não é assim que se faz software

terça-feira, 7 de abril de 2009

Não é assim que se faz software

Acredite!

terça-feira, 7 de abril de 2009

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

XPExtreme Progamming

terça-feira, 7 de abril de 2009

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

Sempre7%

Frequentemente13%

Às vezes16%

Raramente19%

Nunca45%

Utilização de funcionalidades de software

terça-feira, 7 de abril de 2009

Raramente19%

Nunca45%

desperdício

terça-feira, 7 de abril de 2009

Sempre7%

Frequentemente13%

Pareto

20% das funcionalidadesgeram 80% do valor

terça-feira, 7 de abril de 2009

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

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

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

Onde...

terça-feira, 7 de abril de 2009

Onde...

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

terça-feira, 7 de abril de 2009

• 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

Valores

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

Comunicação *

terça-feira, 7 de abril de 2009

Comunicação *

Coragem *

terça-feira, 7 de abril de 2009

Comunicação *

Coragem *

Feedback *

terça-feira, 7 de abril de 2009

Comunicação *

Coragem *

Feedback *

Respeito *

terça-feira, 7 de abril de 2009

Comunicação *

Coragem *

Feedback *

Respeito *

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

Princípios

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Economia

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria* Auto semelhança

terça-feira, 7 de abril de 2009

* Benefício mútuo

* Diversidade

* Economia

* Falha

* Fluidez

* Humanismo

* Melhoria

* Oportunidade

* Auto semelhança

terça-feira, 7 de abril de 2009

* 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

* 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

* 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

* 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

* 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

PráticasPrimárias

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

Ambiente informativo *

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

terça-feira, 7 de abril de 2009

Ambiente informativo *

Build de 10 minutos *

Ciclo semanal *

Ciclo trimestral *

TDD *

Design incremental *

* Equipe integral

* Folga

terça-feira, 7 de abril de 2009

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

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

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

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

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

PráticasCorolárias: consequências

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

análise da raiz do problema *

terça-feira, 7 de abril de 2009

análise da raiz do problema *

base de código unificada *

terça-feira, 7 de abril de 2009

análise da raiz do problema *

base de código unificada *

código coletivo *

terça-feira, 7 de abril de 2009

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

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

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

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

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

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

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

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

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

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

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

A metodologia em prática

terça-feira, 7 de abril de 2009

primeiro passo

terça-feira, 7 de abril de 2009

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

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

de quem é a responsabilidade?

terça-feira, 7 de abril de 2009

de quem é a responsabilidade?

é nossa

terça-feira, 7 de abril de 2009

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

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

Entrega 1

Entrega 3

Entrega 2

planejamentoinicial

8 semanas

terça-feira, 7 de abril de 2009

terça-feira, 7 de abril de 2009

Entrega 1

Entrega 3

Entrega 2

iterações

1 2 3 ...

1 semana

terça-feira, 7 de abril de 2009

a iteração

terça-feira, 7 de abril de 2009

comecejogando

terça-feira, 7 de abril de 2009

comecejogando

terça-feira, 7 de abril de 2009

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

jogue mais uma vez

planningpoker

terça-feira, 7 de abril de 2009

priorizeterça-feira, 7 de abril de 2009

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

durante a semana...

terça-feira, 7 de abril de 2009

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

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

a modelagemé visual

UML

e a documentaçãotambém

terça-feira, 7 de abril de 2009

...a semana continua...

terça-feira, 7 de abril de 2009

...a semana continua...

a equipe colaboraentre si

terça-feira, 7 de abril de 2009

...a semana continua...

a equipe colaboraentre si

o cliente avalia

terça-feira, 7 de abril de 2009

...a semana continua...

a equipe colaboraentre si

o cliente avalia

histórias terminam

terça-feira, 7 de abril de 2009

...a semana continua...

a equipe colaboraentre si

o cliente avalia

histórias terminam

e outrascomeçam

terça-feira, 7 de abril de 2009

...e a iteração termina

com a aprovação do clienteou não

terça-feira, 7 de abril de 2009

retrospectivaterça-feira, 7 de abril de 2009

e uma nova iteração recomeça

terça-feira, 7 de abril de 2009

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

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

Coragem

insensatez confiança

terça-feira, 7 de abril de 2009

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

Velocidadeterça-feira, 7 de abril de 2009

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

refatoreterça-feira, 7 de abril de 2009

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

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

quer boas notícias?

terça-feira, 7 de abril de 2009

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

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

dúvidas?

terça-feira, 7 de abril de 2009

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

Obrigado!podem acordar

terça-feira, 7 de abril de 2009

Extreme Programming

Paulo César M. Jeveaux

paulo.jeveaux@giran.com.br

terça-feira, 7 de abril de 2009