experimente programação extrema
DESCRIPTION
Palestra apresentada na IX Semana Acadêmica do IESAM, Belém-PA, 2009.TRANSCRIPT
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
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.
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
O que XP não é
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
XP não é um sistema operacional
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
XP não é uma banda de rock
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
XP não é um esporte ultra-radical
ÉGUA!
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
XP não é Xarope de Pupunha
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.
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Desenvolvimento de Software
Tradicional e
Ágil
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.
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.
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.
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.
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.
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Valores do XP
Feedback
Comunicação
Simplicidade
Coragem
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Práticas do XP
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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;
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Empresas que experimentam ágil
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
Referências
Expe
rimen
te P
rogr
amaç
ão e
Xtre
ma
EM MAIO/2009