O documento discute a metodologia de desenvolvimento de software Extreme Programming (XP). XP envolve o desenvolvimento incremental em pequenas iterações com feedback frequente do cliente, simplicidade, comunicação, coragem e respeito. O documento explica os princípios, práticas e ciclo de vida da metodologia XP.
2. Programação ágil – Extreme
Programming [XP]
• A constante necessidade de se obter resultados
favoráveis na economia mundial tem obrigado a
indústria a reunir esforços para dinamizar o seu
processo produtivo.
• O Extreme Programming – uma metodologia ágil,
que visa um rápido desenvolvimento, atende às
reais necessidades do cliente e, ainda, permite
modificações, à medida que novas necessidades
apareçam.
I
N
T
R
O
D
U
Ç
Ã
O
3. Programação ágil – Extreme
Programming [XP]
• Extreme Programming (XP) é uma metodologia de
desenvolvimento de software que se destina
também a melhorar a qualidade do software e a
capacidade de resposta à evolução das
necessidades dos clientes.
I
N
T
R
O
D
U
Ç
Ã
O
4. Programação ágil – Extreme
Programming [XP]
• Com XP, um projeto de desenvolvimento de
aplicativo é realizado em pequenos
incrementos. Você pode implementar o
aplicativo parcial, que deverá permitir que
as pessoas executem algum nível de
trabalho, mesmo que o aplicativo ainda não
faça tudo que você pretende para ele no
fim.
I
N
T
R
O
D
U
Ç
Ã
O
5. A criação
• O Extreme Programming é um modelo de desenvolvimento de
software, criado entre 1996-1997, por Kent Bech, no
Departamento de Computação da montadora de carros
Chrysler.
• O XP é um conjunto bem definido de regras, que vem
ganhando um grande número de adeptos por oferecer
condições para que os desenvolvedores respondam com
eficiência a mudanças no projeto, mesmo nos estágios finais
do ciclo de vida do processo, devido a cinco lemas adotados
por seus seguidores, que correspondem a cinco conceitos a
partir das quais os projetos podem ser melhorados. São eles:
Comunicação, Simplicidade, FeedBack, Coragem e Respeito.
8. Princípios básicos
• Feedback rápido: Quanto mais demorado o retorno, menor o
aprendizado produzido por ele.
• Simplicidade assumida: Desenvolver a solução mais simples
que possa funcionar. Não construir complexidade
desnecessária.
• Mudança incremental: Grandes mudanças tendem a não
funcionar: os problemas são normalmente resolvidos com
uma série de pequenas mudanças naquilo que faz diferença.
• Aceitar mudanças: A mudança é inevitável. Ao invés de
combater a mudança, aceita-la como normal e saudável para
o projeto.
• Trabalho de qualidade: Se as pessoas que estão no projeto
não gostam da qualidade do trabalho que estão fazendo, a
tendência do projeto e fracassar.
9. Práticas de Programação Extrema
• Planejamento (Jogo de Planejamento - Planning Game): O
desenvolvimento é feito em iterações semanais. No início da
semana, desenvolvedores e cliente reúnem-se para priorizar as
funcionalidades. Essa reunião recebe o nome de Jogo do
Planejamento. Nela, o cliente identifica prioridades e os
desenvolvedores as estimam. O cliente é essencial neste
processo e assim ele fica sabendo o que está acontecendo e o
que vai acontecer no projeto.
• Fases pequenas (Small Releases): A liberação de pequenas
versões funcionais do projeto auxilia muito no processo de
aceitação por parte do cliente, que já pode testar uma parte
do sistema que está comprando. As versões chegam a ser
ainda menores que as produzidas por outras metodologias
incrementais, como o RUP.
A
S
P
R
I
N
C
I
P
A
I
S
10. Práticas de Programação Extrema
• Testes de Aceitação (Customer Tests): São testes construídos
pelo cliente e conjunto de analistas e testadores, para aceitar
um determinado requisito do sistema.
• Reuniões em pé (Stand-up Meeting): Reuniões em pé para
não se perder o foco nos assuntos, produzindo reuniões
rápidas, apenas abordando tarefas realizadas e tarefas a
realizar pela equipe.
• Padronização do Código (Coding Standards): A equipe de
desenvolvimento precisa estabelecer regras para programar e
todos devem seguir estas regras. Desta forma parecerá que
todo o código fonte foi editado pela mesma pessoa, mesmo
quando a equipe possui 10 ou 100 membros.
A
S
P
R
I
N
C
I
P
A
I
S
(Continuação...)
11. Práticas de Programação Extrema
• Metáfora (Metaphor): Procura facilitar a comunicação com
o cliente, entendendo a realidade dele. É preciso traduzir as
palavras do cliente para o significado que ele espera dentro
do projeto.
• Semana de 40 horas (Sustainable Pace): Trabalhar com
qualidade, buscando ter ritmo de trabalho saudável (40
horas/semana, 8 horas/dia), sem horas extras, exeto
quando trouxerem muita produtividade. As horas devem
ser bem aproveitadas, para isto o ambiente de trabalho e a
motivação da equipe devem estar sempre em harmonia.
A
S
P
R
I
N
C
I
P
A
I
S
(Continuação...)
13. Concluindo
• Estando ciente de que este tema tratado é amplo, pode-se
concluir que a inclusão do Extreme Programming no dia a dia
do desenvolvimento de software enriquece a comunidade de
programação, independente do segmento das empresas nos
quais os profissionais desempenham suas atividades,
garantindo a evolução dos negócios e dinamismo na economia
atual.
• Constatamos também que o que garante o sucesso de um
projeto não é somente a adoção de uma metodologia
comprovadamente eficaz, a adaptação ou a mesclagem de
várias delas, mas sim a incorporação integral nas rotinas de
desenvolvimento por parte da equipe e a crença de que tais
princípios, valores e práticas terão o resultado esperado no
final do projeto.
14. PERGUNTAS?
• Espaço aberto para debate, opiniões e
dúvidas sobre Extreme Programming [XP]
• Blog:
www.ProfDanielBrandao.wordpress.com
• E-mail:
professorDanielBrandao@gmail.com