Você está na página 1de 44

eXtreme Programming

Alexandre Vasconcelos
amlv@cin.ufpe.br
alexandre@qualiti.com.br
Centro de Informtica da UFPE/
Qualiti Software Processes

1/44

O surgimento de 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 Maro de 1996, ele iniciou um projeto com


novos conceitos que resultaram na
metodologia eXtreme Programming
2/44

O que eXtreme Programming?

Metodologia gil (leve) mais utilizada na


atualidade
Desenvolvida para:
Equipes mdias e pequenas (2 a 12 pessoas)
Requisitos vagos e em constante evoluo

Possui um conjunto de valores e prticas para


nortear o desenvolvimento de software

3/44

Estudo da palavra

Extreme

Programming

Aplicao das boas prticas


de desenvolvimento de
software levadas ao
extremo

Foca em Cdigo

4/44

Manifesto gil

Valorizao de:

Principais preocupaes:

Indivduos e interao MAIS QUE processos e ferramentas


Software em funcionamento MAIS QUE documentao
abrangente
Colaborao com o cliente MAIS QUE negociao de contratos
Responder a mudanas MAIS QUE seguir um plano
Entregar funcionalidades para o cliente de forma rpida
Procuram usar o mnimo de documentao possvel
Realizam projeto simples sem se preocupar em antecipar
funcionalidades

WebSite: http://www.agilemanifesto.org/
5/44

Foco na satisfao do cliente

Desenvolver o
que o cliente
precisa no
momento que
necessrio

6/44

Princpios bsicos

Comunicao

Os membros da equipe (clientes, gerentes,


programadores) devem interagir ao mximo
pessoalmente.
Devem trabalhar na mesma sala, conversar
pessoalmente ou atravs de chats, etc.

Simplicidade

Projeto do SW simplificado continuamente


Processo adaptado, caso algo no esteja funcionando

7/44

Princpios bsicos

Feedback
Cliente est sempre participando do
desenvolvimento do sistema
Testes de unidade e de aceitao fornecem
feedback sobre o sistema
Oportunidades e problemas so identificados o
mais rpido possvel

8/44

Princpios bsicos

Coragem
Indicar problemas no projeto, parar quando est
cansado, pedir ajuda quando necessrio
Simplificar cdigo que est funcionado, dizer ao
cliente que no ser possvel implementar um
requisito no prazo estimado
Seguir o XP como deve ser

9/44

Prticas e Regras de XP: Planejamento

Estrias de uso
Usadas como requisitos do sistema
Mesmo propsito dos casos de uso (de UML),
porm menores e mais simples
Escritos na linguagem do cliente com o mnimo
de detalhes para a estimativa de custos

10/44

Prticas e Regras de XP: Planejamento

Iteraes
Desenvolvimento dividido em iteraes
Possuem durao entre 1 e 3 semanas
Funcionalidades so entregues no final de cada
iterao
Prazos devem ser levados a srio, negocie o
escopo se for necessrio

11/44

Prticas e Regras de XP: Planejamento

Medida da velocidade de projeto


Indica a produtividade da equipe no projeto
Razo entre o que foi produzido e o que foi
estimado a cada iterao
Pode ser medido durante uma iterao
Variaes dramticas em mais de uma iterao
sugerem renegociao de prazo e escopo das
verses

12/44

Prticas e Regras de XP: Planejamento

Jogo do planejamento

Planejamento de verses (Releases)


No incio do projeto especifica-se que estrias de
uso sero implementadas em cada verso
Define-se as datas de liberao das verses

Geralmente de 2 a 3 meses.

Uma release possui diversas iteraes curtas

13/44

Prticas e Regras de XP: Planejamento

Jogo do planejamento

Planejamento das iteraes:

Feito no incio de cada iterao


Estrias de uso so escolhidas de acordo com a importncia
pro cliente e o risco pro projeto
Estrias so divididas em tarefas de 1 a 3 dias
Tarefas so distribudas entre programadores e estimadas
pelos prprios executores
Estimativa preferencialmente baseada no passado
Leva-se em conta a programao em pares

Estrias so adicionadas ou removidas para completar o


tempo da iterao
14/44

Prticas e Regras de XP: Planejamento

Verses freqentes e pequenas


Funcionalidades implementadas so
rapidamente entregues ao cliente
Permite um feedback mais rpido do cliente
reduzindo o impacto de mudanas de requisitos
Verso pode ter inclusive uma nica iterao

15/44

Prticas e Regras de XP: Planejamento

Reunies rpidas (stand-up meeting)


Faz a comunicao entre toda a equipe para
comunicar problemas, solues, etc.
Reunio feita em p com poucos minutos de
fala para cada integrante

16/44

Prticas e Regras de XP: Projeto

Simplicidade
Projetos simples tomam menos tempo que os
complexos
Evitar generalizaes e abstraes
desnecessrias no momento
Um bom projeto deve conter o menor nmero
possvel de classes e mtodos
mais rpido e barato

Requisitos mudam freqentemente


17/44

Prticas e Regras de XP: Projeto

Metfora

Tem a inteno de oferecer uma viso geral do


sistema, em um formato simples, que possa ser
compartilhada por clientes e programadores.
Faz-se uma analogia entre o sistema e um outro
sistema no necessariamente de software que seja de
fcil entendimento para todos
Corresponde mais ou menos Arquitetura do sistema
No tem sido muito usada

18/44

Prticas e Regras de XP: Projeto

Criar spike solutions para reduzir riscos


Programas muito simples (prottipos) utilizados
para verificar o uso determinadas solues e
tecnologias
Utilizados para reduzir os riscos tcnicos do
projeto ou validar as estimativas realizadas

19/44

Prticas e Regras de XP: Projeto

No adicionar funcionalidades
antecipadamente
Requisitos mudam rapidamente
Mantm o cdigo limpo de adivinhaes sobre o
que pode ser usado no futuro
Mantm a produtividade

20/44

Prticas e Regras de XP: Projeto

O cliente est sempre disponvel


No deve s ajudar a equipe de
desenvolvimento
Deve ser parte da equipe
Comunicao com o cliente feita em todas as
fases de um projeto XP

Estrias de uso, planejamento de verses,


feedback do sistema, testes de aceitao, etc.

21/44

Prticas e Regras de XP: Codificao

Programao em pares
Duas pessoas programando em um mesmo
computador pensam melhor que uma
Revezamento: um programa enquanto o outro
projeta e faz reviso on-line do cdigo digitado
Ganho de qualidade compensa o uso de duplas
Auxilia a difuso de conhecimento

22/44

Prticas e Regras de XP: Codificao

Rotao de pares de programadores


Ajuda ainda mais a eliminar as pessoas
consideradas ilhas de conhecimento
Cada um da equipe passa a conhecer todas as
partes do sistema
Os pares devem sempre ser encorajados a
trabalhar em partes do sistema desconhecidas
por eles

23/44

Prticas e Regras de XP: Codificao

Propriedade coletiva do cdigo


Todos so responsveis por todo cdigo
Permite que pessoas forneam idias para toda
parte do sistema
Diminui o risco de possuir pessoas
insubstituveis no projeto

24/44

Prticas e Regras de XP: Codificao

Cdigo tem sempre que seguir um padro


Mantm o cdigo consistente e uniforme
Facilita a leitura e entendimento por outros
programadores

25/44

Prticas e Regras de XP: Codificao

40 horas semanais
No se deve trabalhar mais de 60 h por 2 ou
mais semanas consecutivas
Horas extras no remuneradas prejudicam
motivao da equipe
A insatisfao de se trabalhar horas extras pode
contribuir para a queda de qualidade e aumento
de defeitos
Ao invs disto, modifique o escopo ou o prazo
do projeto

26/44

Prticas e Regras de XP: Codificao

Integrao contnua
Mdulos do sistema so integrados diversas
vezes ao dia
Todos os testes de unidade definidos so
executados
Identificao rpida de bugs inseridos

Programador sabe que trechos de cdigo foram


alterados nas ltimas horas

27/44

Prticas e Regras de XP: Codificao

Fazer refactoring sempre que possvel


Reestruturao sem acrescentar funcionalidade
Remove redundncias e melhora a qualidade do
projeto
Retira cdigos no utilizados
Testes unitrios garantem que cdigo mantm
mesmo comportamento

28/44

Prticas e Regras de XP: Testes

Testes unitrios
Teste das menores unidades (classes,
mtodos, ...)
Identifica bugs no cdigo
Protege o cdigo de manutenes indevidas
De responsabilidade do programador. So
automatizados (JUnit)
Automao dos testes paga o custo da criao
dos testes

29/44

Prticas e Regras de XP: Testes

Testes unitrios so escritos para detectar bugs


identificados
Criao do teste unitrio que identifique o bug
antes de corrigi-lo
Bugs tm tendncia de ressurgir posteriormente

30/44

Prticas e Regras de XP: Testes

Testes antes da codificao


Limita o escopo da soluo a ser implementada
Serve de especificao do cdigo testado
Facilita o entendimento do cdigo a ser criado
Garante que os testes vo ser criados

31/44

Prticas e Regras de XP: Testes

Execuo peridica de testes de aceitao


(testes funcionais)
Procuram testar uma funcionalidade como um
todo (Ex: Venda).
Criados a partir das estrias de uso a serem
implementadas na iterao
Clientes verificam a corretude dos testes
escritos
Devem ser automatizados e regressivos

32/44

Dependncia entre prticas

Algumas prticas possuem inter-dependncias


Refactoring: Testes unitrios
Rotao de pessoas: programao em pares
Propriedade coletiva de cdigo: refactoring,
testes unitrios, integrao contnua
40h semanais: planejamento junto ao cliente
Etc.

33/44

Ciclo de Vida em XP

Um projeto XP passa por algumas fases


durante seu ciclo de vida
Fase de explorao: Anterior construo do
sistema. Visa verificar a viabilidade do sistema e
experimentar possveis solues
Fase de planejamento inicial: Visa definir as
estrias e fechar com cliente o escopo e data do
primeiro Release

34/44

Ciclo de Vida XP

Fase de iteraes do release: Em uma iterao


algumas estrias so implementadas.
Atividades de uma iterao: escrita dos casos
de testes projeto e refatoramento
codificao realizao dos testes
integrao.
Fase de produo: O sistema posto em
operao em um ambiente que simula o
ambiente de produo para verificar
performance e desempenho.
35/44

Ciclo de Vida XP

Fase de manuteno: XP considera que


manuteno faz parte da sua natureza e suas
prticas consideram um ambiente onde
alteraes so constantes
Fase de morte: Trmino de um projeto XP

36/44

Papis envolvidos em XP

Treinador: Preocupa-se com a execuo tcnica e


evoluo do processo. Possui conhecimentos de XP
e orienta a equipe.
Rastreador: Coleta dados sobre o andamento do
projeto e a sua conformidade com o planejamento
feito para as iteraes e release.
Programador: Escreve o cdigo e os casos de teste
unitrios sempre em pares. responsvel por
estimar o tempo para a implementao das estrias.
37/44

Papis envolvidos em XP

Cliente: Responsvel por escrever as estrias


junto com os programadores e prioriz-las.
Tambm ajuda na escrita dos casos de teste
funcionais.
Testador: Ajuda o cliente na definio e escrita
dos testes funcionais. Ele no precisa ser uma
pessoa com apenas essa funo, pode
desempenhar tambm o papel de
programador.
38/44

Exemplo de uma Iterao em XP


Planejar Iterao
Detalhar Estrias(Criar Tarefas)
Descrever Prioridades
Estimar Tarefas
Estimar por Comparao
Estimar por Intuio
Spike Soluctions
Distribuir Estrias
Construir Testes de Aceitao
Programar
Fazer Teste Unitrio
Implementar
Stand-up meetings
Executar Testes de Aceitao
Disponibilizar Iterao

39/44

Xplanner

http://www.xplanner.org
Ferramenta que permite
o planejamento e
acompanhamento de
equipes de
desenvolvimento XP.

40/44

Ferramenta Xplanner - Tela da estria

41/44

Ferramenta Xplanner - Tela da iterao

42/44

Quando no se deve usar XP

Possveis barreiras para o sucesso de um projeto XP

Cultura: Quando a empresa possui uma cultura


fortemente tradicional com nfase em muita
documentao, modelagem, etc.
Tamanho da equipe: Beck considera que a equipe
deve ser pequena (at 12 pessoas).
Espao fsico: O local de trabalho deve servir para
aproximar a equipe e facilitar a comunicao.
Cliente: Em XP o cliente ou algum que o represente
deve trabalhar junto equipe.
43/44

eXtreme Programming
Alexandre Vasconcelos
amlv@cin.ufpe.br
alexandre@qualiti.com.br
Centro de Informtica da UFPE/
Qualiti Software Processes

44/44