Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumrio
eXtreme Programming
uma metodologia gil para equipes pequenas e mdias e que iro desenvolver software com requisitos vagos e em constante mudana. A codificao a atividade principal. nfase
eXtreme Programming
Idia
Baseia-se na reviso permanente do cdigo, testes freqentes, participao do usurio final, refatoramento contnuo, integrao contnua, planejamento, design e redesign a qualquer hora.
Usurios
eXtreme Programming
Ciclo de vida
eXtreme Programming
Princpios
eXtreme Programming
Comunicao
Vrias prticas do XP promovem uma maior comunicao entre os membros da equipe. A comunicao no limitada por procedimentos formais. Usa-se o melhor meio possvel, por exemplo:
eXtreme Programming
Simplicidade
O XP incentiva as prticas que reduzem a complexidade do sistema. A soluo adotada deve ser sempre a mais simples para se alcanar os objetivos esperados:
Usar as tecnologias, design, algoritmos e tcnicas mais simples que permitiro atender aos requisitos do usurio final. Design, processo e cdigo podem ser simplificados a qualquer momento. Qualquer design, processo ou cdigo criado pensando nas iteraes futuras deve ser descartado.
eXtreme Programming
Feedback
Feedback sobre qualidade do cdigo (testes de unidade, programao em pares, posse coletiva). Feedback sobre estado do desenvolvimento (estrias do usurio final, integrao contnua, jogo do planejamento).
Erros detectados e corrigidos imediatamente. Requisitos e prazos reavaliados mais cedo. Facilita a tomada de deciso. Permite estimativas mais precisas. Maior segurana e menos riscos para investidores.
9
eXtreme Programming
Coragem
Testes, integrao contnua, programao em pares e outras prticas do XP aumentam a confiana do programador e ajudam-no a ter coragem para:
Melhorar o design de cdigo que est funcionando para torn-lo mais simples. Jogar fora o cdigo desnecessrio. Investir tempo no desenvolvimento de testes. Mexer no design em estgio avanado do projeto. Pedir ajudar aos que sabem mais. Dizer ao cliente que um requisito no vai ser implementado no prazo prometido. Abandonar processos formais e fazer design e documentao em forma de cdigo.
10
Prticas de XP
A equipe
Todos em um projeto XP so parte de uma equipe. Esta equipe deve incluir um representante do cliente, que:
O representante o usurio final e que conhece o domnio do problema e das suas necessidades.
11
Prticas de XP
estimativas de prazo para cada tarefa. as prioridades: quais as tarefas mais importantes.
Planejamento de um release Cliente prope funcionalidade desejadas (estrias). Programadores avaliam a dificuldade de implement-las. Planejamento de uma iterao (at 3 semanas)
Cliente define as funcionalidades prioritrias para a iterao. Programadores as quebram em tarefas e avaliam o seu custo. timo feedback para que o cliente possa dirigir o projeto
possvel ter uma idia clara do avano do projeto. Clareza reduz riscos, aumenta a chance de sucesso.
12
Prticas de XP
Testes de aceitao
No jogo de planejamento, o usurio-cliente elabora estrias que descrevem cada funcionalidade desejada. Programador as implementa.
Cada estria deve ser entendida suficientemente bem para que programadores possam estimar sua dificuldade. Cada estria deve ser testvel. So testes automticos. Quando rodarem com sucesso,a funcionalidade foi implementada. Devem ser rodados novamente em cada iterao futura. Oferecem feedback: pode-se saber, a qualquer momento, quantos % do sistema j foi implementado e quanto falta.
13
Prticas de XP
Software disponvel imediatamente. Menor risco (se o projeto no terminar, parte existe e funciona). Cliente pode medir com preciso o quanto j foi feito. Feedback do cliente permitir que problemas sejam detectados cedo e facilitar a comunicao entre o cliente e o desenvolvedor. Valores de negcio implementados foram escolhidos pelo cliente. usurio-cliente (que pode test-lo, avali-lo e oferecer feedback). usurio-final (sempre que possvel).
Design simples e integrao contnua so prticas essenciais para viabilizar pequenos e freqntes lanamentos.
14
Prticas de XP
Design simples
O projeto comea simples e se mantm simples atravs de testes e refinamento do design (refatoramento).
Todos buscamos design simples e claro. Em XP, levamos isto a nveis extremos.
No permitimos que se implemente nenhuma funo adicional que no ser usada na atual iterao. Roda todos os testes. Expressa todas as idias que voc deseja expressar. No contm cdigo duplicado. Tem o mnimo de classes e mtodos.
15
Prticas de XP
Programao em duplas
Um computador, um teclado e dois programadores. Um piloto, um co-piloto. Papis so alternados freqentemente. Pares so trocados periodicamente.
Benefcios
Melhor qualidade do design, cdigo e testes. Reviso constante do cdigo. Nivelamento da equipe. Maior comunicao.
16
Prticas de XP
Testes
Os testes puxam o desenvolvimento. Os programadores XP escrevem testes primeiro, escrevem cdigo e rodam testes para validar o cdigo escrito. Cada unidade de cdigo s temvalor se seu teste funcionar 100%. Todos os testes so executados automaticamente, o tempo todo. Testes so a documentao executvel do sistema. Que adianta a OO isolar a interface da implementao se o programador tem medo de mudar a implementao? Cdigo testado mais confivel. Cdigo testado pode ser alterado sem medo.
17
Prticas de XP
O cdigo o design.
O design melhorado continuamente atravs de refatoramento. O refatoramento um processo formal realizado atravs de etapas reversveis
Passos de refatoramento melhoram, incrementalmente, a estrutura do cdigo, sem alterar sua funo. Existncia prvia de testes essencial (elimina o medo de que o sistema ir deixar de funcionar por causa da mudana).
18
Prticas de XP
Integrao contnua
Integrao de todo o sistema pode ocorrer vrias vezes ao dia. Todos os testes (unidade e integrao) devem ser executados.
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.
19
Prticas de XP
Posse coletiva
Em um projeto XP, qualquer dupla de programadores pode melhorar o sistema a qualquer momento. Todo o cdigo em XP pertence a um nico dono: a equipe
Todo o cdigo recebe a ateno de todos os participantes resultando em maior comunicao. Maior qualidade (menos duplicao, maior coeso). Menos riscos e menos dependncia de indivduos.
Todos compartilham a responsabilidade pelas alteraes. Testes e integrao contnua so essenciais e do segurana aos desenvolvedores. Programao em pares reduz o risco de danos.
20
Prticas de XP
Padres de codificao
Todo o cdigo parece que foi escrito por um nico indivduo, competente e organizado. Cdigo com estrutura familiar facilita e estimula
Posse coletiva Comunicao mais eficiente Simplicidade Programao em pares Refinamento do design
21
Prticas de XP
Metfora
Pode ser uma analogia com algum outro sistema que facilite a comunicao entre os membros da equipe e cliente.
22
Prticas de XP
Ritmo saudvel
Entregar software da melhor qualidade. Obter a maior produtividade dos programadores. Obter a satisfao do cliente.
Projetos com cronogramas apertados que sugam todas as energias dos programadores no so projetos XP
Semanas de 80 horas levam baixa produtividade. Produtividade baixa leva a cdigo ruim, relaxamento da disciplina, dificulta comunicao, aumenta a irritao e o stress da equipe. Tempo ganho ser perdido depois. Eventuais horas extras so aceitveis quando produtividade maximizada no longo prazo.
23
Prticas de XP
Manter as coisas simples. Jogar fora cdigo desnecessrio. Escrever testes antes de codificar. Refatorar com freqncia (vencer o medo).
24
Quando no usar XP
Comunicao um valor fundamental do XP. No fcil garantir o nvel de comunicao requerido em projetos XP em grandes equipes.
compile-link-build-test que leva 24 horas. Testes so muito difceis, arriscados e que levam muito tempo. Programadores espalhados em ambientes fsicos distantes e sem comunicao eficiente.
25
Concluses de XP
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 so essenciais. Nem todos os projetos so bons candidatos a usar uma metodologia gil como XP. XP mais adequado a equipes pequenas e mdias.
26
Referncias
Internacionais:
Nacionais:
http://www.xispe.com.br/
Download da Palestra:
http://www.tiagodemelo.info
27