extreme programming - xp
TRANSCRIPT
Extreme Programming
Paulo César M. Jeveaux
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
terça-feira, 7 de abril de 2009