2. Programação Ágil – Extreme
Programming [XP] - Conceito
A Programação Extrema, ou “XP”, é
uma metodologia de desenvolvimento
de software que se destina a
melhorar a qualidade do software e a
capacidade de resposta à evolução
das necessidades dos clientes.
3. Programação Ágil – Extreme
Programming [XP] - Criação
O Extreme Programming é um modelo de
desenvolvimento de software, criado por Kent
Bech, em Chrysler, entre 1996-1997; um
conjunto bem definido de regras, que vem
ganhando adeptos por oferecer condições para
que os desenvolvedores respondam com
eficiência mudanças do projeto, mesmo nos
estágios finais do processo, devido a lemas
adotados, que correspondem a cinco conceitos
das quais os projetos podem ser melhorados.
São eles: Comunicação, Simplicidade,
FeedBack, Coragem e Respeito.
4. Programação Ágil – Extreme
Programming [XP] - Criação
Programação eXtrema (XP) é uma técnica
revolucionária de desenvolvimento de
software. Tais objetivos são alcançados
através de um pequeno conjunto
de VALORES, PRINCIPIOS E PRATICAS
que diferem substancialmente da forma
tradicional de se desenvolver software.
5. Programação Ágil – Extreme
Programming [XP] - Princípios
Feedback rápido
Presumir simplicidade
Mudanças incrementais
Abraçar mudanças
Trabalho de alta qualidade.
6. Programação Ágil – Extreme
Programming [XP] - Práticas
Planejamento;
Fases pequenas;
Testes de aceitação;
Reuniões em pé;
Padronização de código;
Metáfora;
Semana de 40 horas;
Entre outros;
7. Programação Ágil – Extreme
Programming [XP] - Práticas
Planejamento: 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.
8. Programação Ágil – Extreme
Programming [XP]
Fases pequenas: 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.
9. Programação Ágil – Extreme
Programming [XP]
Testes de Aceitação: São testes
construídos pelo cliente e conjunto de
analistas e testadores, para aceitar um
determinado requisito do sistema.
Reuniões em pé: 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.
10. Programação Ágil – Extreme
Programming [XP]
Padronização do Código: 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.
11. Programação Ágil – Extreme
Programming [XP]
Metáfora: Procura facilitar a comunicação
como cliente, entendendo a realidade dele. É
preciso traduzir as palavras do cliente para o
significado que ele espera dentro do projeto.•
Semana de 40 horas: Trabalhar com
qualidade, buscando ter ritmo de trabalho
saudável (40horas/semana), sem horas
extras, exceto 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.
12.
13. Programação Ágil – Extreme
Programming [XP] – Ciclo de
Vida
O ciclo de vida de um projeto XP
consiste em pôr as práticas e
estratégias da XP em funcionamento de
maneira ordenada. Ele consiste de uma
pequena fase inicial de desenvolvimento
seguida por um longo período de
refinamento e suporte à produção. O
ciclo de vida pode ser dividido nas
seguintes fases:
14. Programação Ágil – Extreme
Programming [XP] – Ciclo de
Vida
Exploração;
Planejamento;
Interações;
Produção;
Manutenção;
Morte;
15. Programação Ágil – Extreme
Programming [XP] – Papéis
Cliente: Responsável por escrever
“histórias”; muitas vezes é um
programador ou é representado por um
programador do grupo; trabalha no mesmo
espaço físico do grupo; feedback do cliente
é essencial.
Treinador: O mais experiente do grupo;
identifica quem é bom no que; lembra a
todos as regras do XP; faz programação
pareada; chama a atenção para
oportunidades de melhorias; seu papel
diminui à medida em que o time fica mais
maduro.
16. Programação Ágil – Extreme
Programming [XP] - Papéis
Acompanhador: A “consciência” do time;
mantém histórico do progresso; faz estimativas
para o futuro e coleta estatísticas sobre o
andamento do projeto, como:
• Número de histórias definidas e implementadas.
• Número de unit tests.
• Número de testes funcionais definidos e funcionando.
• Número de classes, métodos, linhas de código.
Programador: - foco central da metodologia,
sem hierarquia.
18. Programação Ágil – Extreme
Programming [XP] -
Conclusão
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.