Desenvolvimento Ágil de Software com Extreme Programming

25
Luiz Eduardo de O. Fonseca Programador e Web Designer Orangeweb / O Lojão Magazine

description

 

Transcript of Desenvolvimento Ágil de Software com Extreme Programming

Page 1: Desenvolvimento Ágil de Software com Extreme Programming

Luiz Eduardo de O. Fonseca

Programador e Web DesignerOrangeweb / O Lojão Magazine

Page 2: Desenvolvimento Ágil de Software com Extreme Programming

Extreme Programmi

ng (XP)Desenvolvimento Ágil de Software

Page 3: Desenvolvimento Ágil de Software com Extreme Programming

O Modelo Tradicional....

• Analisar, Projetar, Construir, Rodar e Manter;

• Baseado nos Moldes Industriais;• O Analista Nostradamus;• Alto Custo nas Mudanças;• O Cliente espera muito tempo para usar o software;• O Programador Cowboy;

Page 4: Desenvolvimento Ágil de Software com Extreme Programming

O Modelo Ágil....

• Curtas Iterações;• Pequenas Entregas; • Abraçar as Mudanças;• Uso de Patterns e Frameworks;• Evitar riscos no desenvolvimento;• O AGORA é o que importa;• Cliente Presente;

Page 5: Desenvolvimento Ágil de Software com Extreme Programming

Manifesto Ágil

Indivíduos e Interações

.. Mais que ...

Processos e Ferramentas

Page 6: Desenvolvimento Ágil de Software com Extreme Programming

Manifesto Ágil

Software em Funcionamento

... Mais que ...

Documentação Abrangente

Page 7: Desenvolvimento Ágil de Software com Extreme Programming

Manifesto Ágil

Colaboração com o Cliente

... Mais que ...

Negociação de Contratos

Page 8: Desenvolvimento Ágil de Software com Extreme Programming

Manifesto Ágil

Responder a mudanças

... Mais que ...

Seguir um Plano

Page 9: Desenvolvimento Ágil de Software com Extreme Programming

Extreme Programming (XP)• Proposto por Kent Beck (1999/2000) • Bom para Equipes Médias e Pequenas;• Software com Requisitos Vagos e Mudanças Freqüentes;• Permitir que o cliente priorize as funcionalidades;• Baseado em 4 Valores;

Page 10: Desenvolvimento Ágil de Software com Extreme Programming

Valores do XP

1. Comunicação2. Simplicidade3. Feedback4. Coragem

Page 11: Desenvolvimento Ágil de Software com Extreme Programming

XP - Comunicação

• Maior comunicação entre a Equipe;• Maior comunicação com o Cliente;• Telefonemas mais que Emails;• E-mails mais que SMS;• Conversas cara-a-cara mais que

tudo;• Código Auto Explicativo e Simples

mais que Documentação escrita;

Page 12: Desenvolvimento Ágil de Software com Extreme Programming

XP - Simplicidade

• Redução da Complexidade do Sistema;

• Uso de práticas comuns;• KISS – Keep It Stupid Simple• DRY – Don’t Repeat Yourself

Page 13: Desenvolvimento Ágil de Software com Extreme Programming

XP - Feedback

• Feedback sobre a qualidade de Código;

• Feedback sobre o Desenvolvimento;• Feedback através de Testes;• Facilita tomada de decisões;• Requisitos e Prazos reavaliados;• O Cliente aprende sobre o Sistema;• A Equipe aprende sobre o Cliente;

Page 14: Desenvolvimento Ágil de Software com Extreme Programming

XP - Coragem

• Refatorar Sempre que necessário;• Testar, testar, testar;• Abraçar as Mudanças de Escopo;• Alterar o sistema em estado

avançado;• Compartilhar o código;

Page 15: Desenvolvimento Ágil de Software com Extreme Programming

XP – A Equipe

• Até 10 pessoas;• Não existe um chefe, existe um

Líder;• Programadores, Testadores,

Analistas, Gerente, Coach (Orientador) e Tracker (Métricas);

• Programação em Par;• Ambiente agradável;

Page 16: Desenvolvimento Ágil de Software com Extreme Programming

XP – Jogo de Planejamento• Stand-up Meeting;• Definição dos Requisitos em

Cartões;• Definição de Estimativas e

Prioridades;• Releases (Pequenos);• Iterações;• Cliente presente e ativo;• Feedback em todo o processo;

Page 17: Desenvolvimento Ágil de Software com Extreme Programming

XP – Testes

• Testes unitários;• Testes de aceitação;• Cada estória deve ser ‘testável’;• O Cliente deve aceitar o teste;• Feedback na hora;• São rodados em todas as iterações;

Page 18: Desenvolvimento Ágil de Software com Extreme Programming

XP – Releases (Pequenos)

• Software funcional;• Cliente satisfeito;• Gera maior valor para o cliente;• Feedback;• Design Simples e Integração

Contínua;• Levam as Estórias Prioritárias;

Page 19: Desenvolvimento Ágil de Software com Extreme Programming

XP – Refatoração

• Mude o que está errado;• Melhore o que está lento;• Simplifique o que é complicado;• É Realizado o tempo todo;• Melhorias na estrutura do código;• Evite ser o Cowboy da turma;

Page 20: Desenvolvimento Ágil de Software com Extreme Programming

XP – Design Patterns

• Abrace um;• Nomes de métodos, classes,

variáveis...• Promove a Simplicidade;• Fácil entendimento;• Não reinvente a roda;

Page 21: Desenvolvimento Ágil de Software com Extreme Programming

XP – Ritmo Sustentável

• Software de qualidade;• Bons cronogramas;• Prazos Reais e Possíveis;• O ‘fim’ da Hora Extra;• Melhor controle do Tempo;

Page 22: Desenvolvimento Ágil de Software com Extreme Programming

XP – Como usar ?

• Enfatize o problema mais importante;• Aproxime-se do Cliente;• Faça sua equipe ser uma equipe;• Use Design Patterns;• Evite Nostradamus e Cowboys;• Teste, Teste e Teste.• Refatore com freqüência;• Comunicação entre a Equipe / Cliente;

Page 23: Desenvolvimento Ágil de Software com Extreme Programming

XP – Quando não usar ?

• Equipe grande;• Equipe geograficamente espalhada;• Equipe de Cowboys, Nostradamus e

Garotos Prodígios;• Código Legado;• Os chefes dominam;• Pessoas isoladas;

Page 24: Desenvolvimento Ágil de Software com Extreme Programming

XP – Perguntas? ...

?

Page 25: Desenvolvimento Ágil de Software com Extreme Programming

Muito obrigado....

Luiz Eduardo de Oliveira Fonseca

Contato: [email protected]: www.webdevbrasil.com.br