Visão Geral sobre o XP –
eXtreme Programming
Alexandre Monteiro
1/30
Manifesto Ágil [1/5]



Assinado por 17 desenvolvedores com
reconhecimento mundial em Utah em
fevereiro/2001.
Declaração de 4 valores
http://www.agilemanifesto.org/
2/30
Manifesto Ágil [2/2]
“Estamos evidenciando maneiras melhores de desenvolver
software fazendo-o nós mesmos e ajudando outros a fazê-lo.
Através desse trabalho, passamos a entender que:




Indivíduos e interações são mais importantes que processos
e ferramentas.
Software funcionando é mais importante do que
documentação completa e detalhada.
Colaboração com o cliente é mais importante do que
negociação de contratos.
Adaptação a mudanças é mais importante do que seguir o
plano inicial.
Ou seja, mesmo tendo valor os itens à direita, valorizamos
mais os itens à esquerda. “
3/30
Metodologias Ágeis






eXtreme Programming
FDD
Lean Software Development
Cristal Family
Scrum
(...)
4/30
O surgimento do XP

Em meados de 1990, Kent Beck procurou
formas mais simples e eficientes de
desenvolver software


Identificou o que tornava simples e o que
dificultava o desenvolvimento de software
Em Março de 1996, ele iniciou um projeto
com novos conceitos que resultaram na
metodologia XP - eXtreme Programming
5/30
O que é eXtreme Programming?
“Trata-se de uma metodologia ágil para
equipes pequenas e médias desenvolvendo
software com requisitos vagos e em
constante mudança”
Kent Beck
6/30
Programando ao Extremo

Levar todas as boas práticas ao Extremo




Se testar é bom, vamos testar toda hora!!
Se projetar é bom, vamos fazer disso parte do
trabalho diário de cada pessoa!
Se integrar é bom, vamos integrar a maior
quantidade de vezes possível!
Se iterações curtas é bom, vamos deixar as
iterações realmente curtas!
7/30
Mudanças sempre ocorrem



Clientes não sabem o que querem no
início
Desenvolvedores não sabem qual a
melhor maneira de fazer o software
no início
Medo da mudança trava o
desenvolvimento
8/30
Avanços

Nos últimos 30 anos...

Melhoria nos processos


Melhorias nas ferramentas


Iterativo Incremental
IDEs, automação...
Maior abstração no desenvolvimento



Orientação a Objetos
Orientação a Aspectos
Orientação a ...
9/30
Mudar não é tão caro
custo
Requisitos
Análise
Projeto
Implementação
Testes
Produção
t
10/30
XP inclui...





Comunicação
Coragem
Feedback
Simplicidade
Respeito
11/30
Comunicação



Soluções de problemas normalmente
já são conhecidas...
O problema é a solução chegar a quem
precisa
Comunicação face a face é a maneira
mais rápida de “espalhar”
conhecimento
12/30
Coragem



Extreme Programming é novo e
diferente
Atitude é mais importante que
processo
Coragem pra dizer a verdade, para
recomeçar do zero, para inovar
13/30
Feedback


Feedback <-> Comunicação
Feedback aumenta aprendizado e
produtividade
14/30
Simplicidade



Regra geral
Pensar sempre : “ O que pode ser
feito que seja o mais simples que
funciona?”
Simplicidade normalmente gera mais
valor
Geração de
valor
overhead
Simplicidade
15/30
Respeito



Coragem, Feedback, Simplicidade,
Comunicação...
Respeito é necessário para tirar o
máximo desses valores
Respeito pelo próximo


Feedback, Comunicação
Respeito por si mesmo

Coragem, Simplicidade
16/30
Boas Práticas

Test First Design

Refactoring

Stand-up Meeting

Continuous
Integration
A criação de testes leva em conta não o
tempo ganho com a criação dos
mesmos antes da codificação, mas
conhecer previamente as possíveis
falhas do seu sistema.
A reconstrução baseia-se na remoção
de redundância, eliminação de
funcionalidades inúteis, e reconstrução
de projetos obsoletos.
Reuniões rápidas e
diárias com a equipe
Os diversos módulos do
software são integrados
diversas vezes por dia e todos
os testes unitários são
executados. O código não
passa até obter sucesso em
100% dos testes unitários.
17/30
Boas Práticas




Pair Programming
Todo código de produção é
desenvolvido por duas pessoas
trabalhando com o mesmo teclado, o
mesmo mouse e o mesmo monitor.
Move People
Around
As duplas de programação são
revezadas em média a cada 2h.
Collective Code
Ownership
E equipe como um todo é responsável
por cada arquivo de código. Não é
preciso pedir autorização para alterar
qualquer arquivo.
Coding Standards
Todo código é desenvolvido
seguindo um padrão.
18/30
Boas Práticas



The Customer is
Always Available
Small Release
Simple Design
O cliente está sempre disponível
para resolver dúvidas, alterar o
escopo de uma iteração e definir
prioridades.
O software é entregue em pequenas
versões para que o cliente possa
obter o seu ganho o mais cedo
possível e para minimizar riscos.
O código está, a qualquer
momento, na forma mais
simples que passe todos os
testes.
19/30
Boas Práticas



40-Hour Week
On-Site Customer
Acceptance Tests
Cada programador trabalha
40 horas por semana.
Se o horário for flexível,
deve-se respeitar o horário do
par naquele período, senão
enquanto um trabalha o outro
vai pra casa .
Ter um papel de cliente
na equipe XP em
tempo integral para
responder as perguntas
São definidos pelo
usuário e são os critérios
de aceitação do software.
20/30
Boas Práticas

System Metaphor
Ajuda a manter todos os
desenvolvedores em sintonia
com o projeto quando dando
nomes a objetos ou classes.
A Fábrica
A idéia é que exista um objeto "produto" que sofre várias
modificações ao longo da "linha de montagem", onde outros
objetos trabalham sobre o produto.
A vantagem é que é simples adicionar "máquinas novas" a
linha de montagem.
O Correio
Quando o "produto" precisa passar pela mão de várias pessoas, às vezes
para conhecimento, aprovação ou modificação do conteúdo. Podem existir
modificações feitas pelo sistema, nesse caso, existem "destinatários
virtuais" que recebem a mensagem, analisam e despacham para quem
deve. A diferença básica do Correio para a Fábrica é que ele não segue
uma linha.
Turista
O objeto é um "turista", o Servlet e o Banco são hospedagens, os
dados são a bagagem, o objeto que tira os dados do "turista" e coloca
ou no Servlet (em XML) ou no Banco são "carregadores de
bagagem". Quando a "bagagem" está guardada no hotel "Banco de
Dados" o "turista" recebe um ticket da bagagem para poder pegar ela
depois (o Identificador único da tabela).
21/30
Papéis no XP
Big Boss / XpManager
Deve fazer:
• Agendar reuniões;
• Escrever atas;
• Manter o XP Tracker informado dos
acontecimentos das reuniões
Não deve fazer:
•Deixar que problemas externos interfiram no
desenvolvimento
•Dizer quando as coisas devem acontecer
•Dizer às pessoas o que fazer
•Cobrar das pessoas
22/30
Papéis no XP
Xp Gold Owner (Cliente - O proprietário do
ouro)
É quem paga pelo sistema, geralmente o dono da empresa.
Xp Goal Donor
Deve fazer:
• Escrever User Stories
• Definir prioridades
• Definir testes de aceitação
Não deve fazer:
• Implementar código
• Definir quanto tempo uma
tarefa leva para ser feita
• Validar testes de aceitação
• Esclarecer dúvidas
23/30
Papéis no XP
Xp Coach
Coordenadores
Xp Tracker
Responsável pela negociação
com o cliente quanto ao
escopo e pela coordenação
do Planning Game.
Deve fazer:
• Coletar métricas
• Manter todos informados
do que está acontecendo
• Definir testes de aceitação
• Tomar atitudes diante de
problemas
• Sugerir sessões de CRC
(Class, Responsabilities ,
Collaboration)
24/30
Papéis no XP
Programador
(Driver/Partner)
Deve fazer:
• Estimar prazos de User Stories
• Implementar código de produção
• Trabalhar em par
• Fazer refactoring
• Corrigir bugs
Não deve fazer:
• Criar/Alterar novas funcionalidades
• Escrever testes de aceitação
25/30
Um Projeto XP
26/30
27/30
Planejamento das iterações





Divida o projeto em etapas de 1 ou 2 semanas;
Considere prazos fixos e escolha um dia da semana
para integrações e entregas; (segunda ou sextafeira);
Planeje reuniões diárias para acompanhar a
evolução do projeto (“stand-up”, meeting matinal);
As iterações serão as unidades de referência para
fazer estimativas;
Entre no jogo para entregar um produto a cada
iteração.
28/30
Conclusão

Extreme Programming



Mudança é algo normal


Atitude
Disciplina
Aceitar, não fugir
Conjunto de boas práticas
29/30
Referências

XPRecife – Grupo de Estudos de
Métodos Ágeis de Recife


www.cin.ufpe.br/~xprecife
Xispê – Portal Brasileiro de XP

www.xispe.com.br
30/30
Download

Aula 16 - Introducao XP