experimente programação extrema

39
Experimente Programação eXtrema

Upload: luiz-sanches

Post on 13-Jan-2015

2.835 views

Category:

Technology


0 download

DESCRIPTION

Palestra apresentada na IX Semana Acadêmica do IESAM, Belém-PA, 2009.

TRANSCRIPT

Page 1: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Page 2: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Page 3: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Page 4: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Page 5: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Page 6: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Manifesto Ágil (2001).● Indivíduos e interações entre eles mais que

processos e ferramentas;● Software em funcionamento mais que

documentação abrangente;● Colaboração com o cliente mais que

negociação de contratos;● Responder a mudanças mais que seguir um

plano.

Page 7: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

O que XP não é

Page 8: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

XP não é um sistema operacional

Page 9: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

XP não é uma banda de rock

Page 10: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

XP não é um esporte ultra-radical

ÉGUA!

Page 11: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

XP não é Xarope de Pupunha

Page 12: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

O que é XP

XP é um processo de desenvolvimento de software voltado para:● Projetos cujos requisitos são vagos e mudam com

frequência;● Desenvolvimento de sistemas orientados a objeto;● Equipes pequenas, preferencialmente até 12

desenvolvedores;● Desenvolvimento incremental (ou iterativo), onde o

sistema começa a ser implementado logo no início do projeto e vai ganhando novas funcionalidades ao longo do tempo.

Page 13: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Desenvolvimento de Software

Tradicional e

Ágil

Page 14: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Desenvolvimento Tradicional● Em cascata.● Sequêncial.● Tenta mecanizar os

processos como uma linha de produção.

● Ex.: CMMI; MPS.BR.

Page 15: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Desenvolvimento Ágil● Em espiral.● Iterativo.● Software é criado de

uma forma incremental.

● Ex.: DSDM, Scrum, FDD, ASD, XP, Crystal Family, Lean.

Page 16: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Desenvolvimento Tradicional e Ágil● Tradicional: custo de

uma alteração no projeto aumenta durante o tempo.

● Ágil: custo de mudança é praticamente linear ao longo do tempo.

Page 17: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Surgimento do eXtreme Programming

● Ano de 1986.● Kent Beck e Ward

Cunningham.● Trabalhavam na Tektronixs.● Com a linguagem Smalltalk,

totalmente orientada à objetos.

● Praticavam: refactoring, programação em par, mudanças rápidas, feedback e testes constantes, desenvolvimento iterativo.

Page 18: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Surgimento do eXtreme Programming

● Em 1996, Kent Beck foi chamado para “socorrer” o projeto da folha de pagamento da Chrysler, o C3. Foi onde XP foi colocado em prova, testado, aprimorado e batizado.

Page 19: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Valores do XP

Feedback

Comunicação

Simplicidade

Coragem

Page 20: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XP

Page 21: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XP● Cliente Presente● Jogo do

Planejamento● Stand Up Meeting● Programação em Par● Desenvolvimento

Guiado pelos Testes● Refactoring

● Código Coletivo● Código Padronizado● Design Simples● Metáfora● Ritmo Sustentável● Integração Contínua● Releases Curtos

Page 22: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPCliente Presente

● O cliente deve participar e conduzir o desenvolvimento a partir do feedback que recebe do sistema.

● Viabiliza a comunicação direta com a equipe.

Page 23: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPJogo do Planejamento

● Se dá no início de cada iteração (semanas) para priorizar as estórias (cartões das funcionalidades) que serão desenvolvidas.

Page 24: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPStand Up Meeting

● Reunião em pé realizada a cada manhã para avaliar o trabalho do dia anterior e priorizar o que será implementado no dia que se inicia.

● Dura em torno de 10 minutos.

Page 25: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPProgramação em Par

● Permite que o código seja revisado permanentemente, enquanto é construído.

● Excelente maneira de distribuir conhecimento entre a equipe.

Page 26: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPDesenvolvimento Guiado pelos

Testes● Escreve-se classes

de testes para cada funcionalidade antes de codificá-la.

● Cria-se somente funcionalidades que serão utilizadas.

● São armazenados para testar o sistema quando for necessário.

Page 27: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPRefactoring

● É o ato de alterar o código sem afetar a funcionalidade que ele implementa.

● Os testes unitários são utilizados para verificar se o sistema continua funcionando.

Page 28: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPCódigo Coletivo

● Os desenvolvedores têm acesso a todas as partes do código e podem modificá-lo (refactoring) se necessário, sem pedir permissão a outras pessoas.

Page 29: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPCódigo Padronizado

● A equipe deve estabelecer padrões de codificação.

● Identação de código;● Comentários;● Variáveis e métodos

estilo camelCase.● Etc.

Page 30: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPDesign Simples

● Não criar generalizações, ou seja, não tente prever o futuro.

● Codificar o suficiente para a funcionalidade ser implementada.

Page 31: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPMetáfora

● Metáforas têm o poder de transmitir idéias complexas de forma simples.

● Facilita a comunicação entre a equipe e o cliente.

Page 32: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPRitmo Sustentável

● Trabalhar com satisfação até oito horas por dia.

● Evitar horas-extras.● Não levar trabalho

para casa.● Realizar uma coisa

de cada vez.● Fim de semana para

lazer.

Page 33: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPIntegração Contínua

● Os pares devem integrar seus códigos com o restante do sistema diversas vezes ao dia.

● Para assegurar que ele continue funcionando, executam-se os testes unitários em busca de falhas.

Page 34: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Práticas do XPReleases Curtos

● Release é um conjunto reduzido de funcionalidades que a equipe coloca em produção rapidamente, geralmente em meses, para o cliente utilizar.

● O cliente não espera o fim do projeto para utilizar o sistema.

Page 35: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Características da Equipe● Gerente de Projeto: é responsável pelos

assuntos administrativos do projeto.● Coach: é o responsável técnico do projeto.● Analista de Teste: é responsável por ajudar o

cliente a escrever os testes de aceitação, detectar defeitos no sistema.

● Redator Técnico: Ajuda a equipe de desenvolvimento a documentar o sistema.

● Desenvolvedor: é a pessoa que analisa, projeta e codifica o sistema.

Page 36: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Quando o XP não deve ser utilizado● Sistema baseado em premiação indivídual;● Contratos de escopo fechado;● Clientes que fazem questão de um grande

número de artefatos;● Escritório não adequados às práticas;● Empresa que não aceita mudanças;● Falta de apoio da diretoria;● Avaliação da cultura organizacional;

Page 37: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Empresas que experimentam ágil

Page 38: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

Referências

Page 39: Experimente Programação eXtrema

Expe

rimen

te P

rogr

amaç

ão e

Xtre

ma

EM MAIO/2009