Escolar Documentos
Profissional Documentos
Cultura Documentos
eXtreme Programming
Em XP, codificao principal tarefa Baseia-se em reviso permanente do cdigo, testes freqentes, participao do usurio final, refatorao contnua, refinamento contnuo da arquitetura, integrao contnua, planejamento, projeto e reprojeto a qualquer hora
Metodologia gil
Indivduos e interaes mais que processos e ferramentas; Software em funcionamento mais que documentao abrangente; Colaborao com o cliente mais que negociao de contratos; Responder a mudanas mais que seguir um plano.
Partes do XP
1. Values (valores): estabelecem a forma do desenvolvimento XP Principles (princpios): guiam o desenvolvimento do software Activities (atividades): devem ser executadas por todo o ciclo de vida XP Practices (prticas): so utilizadas pelas equipes XP para desenvolver sistemas
1. Valores do XP
Communication - (comunicao) Simplicity - (simplicidade) Feedback - (retroalimentao) Courage - (coragem)
Communication (comunicao)
Simplicity (simplicidade)
Feedback (retroalimentao)
Vrias prticas de XP garantem um rpido feedback sobre vrias etapas/partes do processo Feedback sobre qualidade do cdigo Feedback sobre estado do desenvolvimento Permite maior agilidade
Courage (coragem)
2. Princpios XP
Rapid Feedback - (retorno rpido) Assume Simplicity - (simplicidade) Incremental Change - (mudanas incrementais) Embrace Change - (aceitar mudanas) Quality work - (trabalho de qualidade)
O retorno entre os desenvolvedores rpido Modele um pouco, mostre ao cliente e ento modele novamente.
3. Atividades XP
Listening - (escutar) Testing - (testar) Coding - (codificar) Designing (projetar)
Listening (escutar)
XP baseado em comunicao Menor importncia na documentao formal, maior necessidade de uma comunicao verbal de qualidade Alm de dizer que os desenvolvedores devem escutar os clientes, XP tem prticas que dirigem e guiam para uma comunicao melhor
Testing (testar)
Teste um passo integrado no processo de desenvolvimento Desenvolvedores escrevem os teste antes de desenvolverem o cdigo
Coding (codificar)
Escrever cdigo que refinado atravs de prticas como: Refactory - refatorao Pair programming programao em pares Code review reviso de cdigo
Designing (projetar)
O design no esttico nem designado a um cargo (pessoa), ele dinmico e de responsabilidade de toda equipe XP aceita a evoluo natural do sistema, o que implica em mudanas constantes
Prticas XP
Whole Team Planning Game Customer Tests Small releases Simple Design Pair programming Test-drivem development
Refactoring Continuos Integration Collective Ownership Coding Standards Metaphor Sustainable Place
Lanamento pode ser destinado a usurio-cliente (que pode test-lo, avali-lo, oferecer feedback) usurio-final (sempre que possvel)
Refatorao (Refactoring)
No existe uma etapa isolada de projeto em XP O cdigo o projeto! O projeto melhorado continuamente atravs de refactory Mudana proposital de cdigo que est funcionando Objetivos: melhorar o design, simplificar o cdigo, remover cdigo duplicado, aumentar a coeso, reduzir o acoplamento Realizado o tempo todo, durante o desenvolvimento
Integrao contnua
Projetos XP mantm o sistema integrado o tempo todo Integrao de todo o sistema pode ocorrer vrias vezes ao dia (pelo menos uma vez ao dia) Todos os testes (unidade e integrao) devem ser executados Benefcios Expe o estado atual do desenvolvimento (viabiliza lanamentos pequenos e freqentes) Estimula design simples, tarefas curtas, agilidade Oferece feedback sobre todo o sistema Permite encontrar problemas de design rapidamente
Metfora ( Metaphor)
Pode ser uma analogia com algum outro sistema (computacional, natural, abstrato) que facilite a comunicao entre os membros da equipe e cliente Facilita a escolha dos nomes de mtodos, classes, campos de dados, etc. Serve de base para estabelecimento de padres de codificao
Dificuldades
Vencer barreiras culturais Deixar algum mexer no seu cdigo Trabalhar em pares Ter coragem de admitir que no sabe Pedir ajuda Vencer hbitos antigos Manter as coisas simples (e no tentar prever o futuro escrevendo "design flexvel") Jogar fora cdigo desnecessrio Escrever testes antes de codificar Refactory com freqncia (vencer o medo)
Quando no usar XP
Equipes grandes e espalhadas geograficamente Comunicao um valor fundamental de XP No fcil garantir o nvel de comunicao requerido em projetos XP em grandes equipes Situaes onde o feedback demorado Testes muito difceis, arriscados e que levam tempo Programadores espalhados em ambientes fsicos distantes e sem comunicao eficiente
Concluses
Extreme Programming (XP) uma metodologia de desenvolvimento de software baseada nos valores simplicidade, comunicao, feedback e coragem. Para implementar XP no preciso usar diagramas ou processos formais. preciso fazer uma equipe se unir em torno de algumas prticas simples, obter feedback suficiente e ajustar as prticas para a sua situao particular. XP pode ser implementada aos poucos, porm a maior parte das prticas essencial. Nem todos os projetos so bons candidatos a usar uma metodologia gil como XP. XP mais adequado a equipes pequenas ou mdias.
Referncias
Beck, K. Extreme Programming Explained: Embrace Change, 2000. Addison-Wesley. Manifesto for Agile Software Development, Agile Alliance, 2001.