Você está na página 1de 27

Princpios e prticas de eXtremme Programming

Tiago Eugenio de Melo


tiago@comunidadesol.org

Copyleft 2004, Tiago E. de Melo

Sumrio

Introduo Princpios Prticas Quando no usar Concluses Referncias

Copyleft 2004, Tiago E. de Melo

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

Menor em processos formais de desenvolvimento. Maior na disciplina rigorosa.

Copyleft 2004, Tiago E. de Melo

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

Ford. Borland. BMW. Symantec.


4

Copyleft 2004, Tiago E. de Melo

eXtreme Programming

Ciclo de vida

Copyleft 2004, Tiago E. de Melo

eXtreme Programming

Princpios

Comunicao Simplicidade Feedback Coragem

Copyleft 2004, Tiago E. de Melo

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:

Uma conversa ou reunio informal. E-mail, bate-papo ou telefonema.

Preferncia comunicao mais gil


Telefonema melhor do que e-mail. Presena fsica melhor do que remota.

O XP utiliza a comunicao com as respostas mais rpidas possveis.


7

Copyleft 2004, Tiago E. de Melo

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.

Copyleft 2004, Tiago E. de Melo

eXtreme Programming

Feedback

Vrias prticas do XP garantem um rpido feedback sobre as vrias etapas/fases do processo.

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).

Permite maior agilidade


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

Copyleft 2004, Tiago E. de Melo

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.

Copyleft 2004, Tiago E. de Melo

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:

estabelece os requisitos do projeto. define as prioridades. controla o rumo do projeto.

O representante o usurio final e que conhece o domnio do problema e das suas necessidades.

Copyleft 2004, Tiago E. de Melo

11

Prticas de XP

Jogo de planejamento (planning game)

Prtica XP na qual se define


estimativas de prazo para cada tarefa. as prioridades: quais as tarefas mais importantes.

Dois passos chave:

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

Copyleft 2004, Tiago E. de Melo

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

Testes de aceitao so elaborados pelo cliente


Copyleft 2004, Tiago E. de Melo

Prticas de XP

Pequenos lanamentos (small releases)

Disponibiliza, a cada iterao, software 100% funcional.


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).

Cada lanamento possui funcionalidades prioritrias.

Lanamento pode ser destinado a:


Design simples e integrao contnua so prticas essenciais para viabilizar pequenos e freqntes lanamentos.
14

Copyleft 2004, Tiago E. de Melo

Prticas de XP

Design simples

O design est presente em todas as etapas do XP

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

Implementao ideal aquela que:


O que no necessrio AGORA no deve ser implementado.

Copyleft 2004, Tiago E. de Melo

Prticas de XP

Programao em duplas

Todo o desenvolvimento em XP feito em pares


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

Copyleft 2004, Tiago E. de Melo

Prticas de XP

Testes

O seu desenvolvimento guiado por testes Test first, then code


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

Testes do maior segurana: coragem para mudar

Copyleft 2004, Tiago E. de Melo

Prticas de XP

Refinamento do design (refatoramento)

No existe uma etapa isolada de design em 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).

Copyleft 2004, Tiago E. de Melo

18

Prticas de XP

Integrao contnua

Projetos XP mantm o sistema integrado o tempo todo


Integrao de todo o sistema pode ocorrer vrias vezes ao dia. Todos os testes (unidade e integrao) devem ser executados.

Integrao contnua reduz o tempo passado no inferno da integrao. 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.
19

Copyleft 2004, Tiago E. de Melo

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

Copyleft 2004, Tiago E. de Melo

Prticas de XP

Padres de codificao

O cdigo escrito em projetos XP segue um padro de codificao, definido pela equipe


Padro para nomes de mtodos, classes, variveis. Organizao do cdigo.

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

Copyleft 2004, Tiago E. de Melo

Prticas de XP

Metfora

Equipes XP mantm uma viso compartilhada do funcionamento do sistema.

Pode ser uma analogia com algum outro sistema 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.

Copyleft 2004, Tiago E. de Melo

22

Prticas de XP

Ritmo saudvel

Projetos XP esto na arena para ganhar


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

Projeto deve ter ritmo sustentvel por prazos longos.

Copyleft 2004, Tiago E. de Melo

Prticas de XP

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. Jogar fora cdigo desnecessrio. Escrever testes antes de codificar. Refatorar com freqncia (vencer o medo).

Copyleft 2004, Tiago E. de Melo

24

Quando no usar XP

Equipes grandes e espalhadas geograficamente


Comunicao um valor fundamental do XP. No fcil garantir o nvel de comunicao requerido em projetos XP em grandes equipes.

Situaes onde no se tem controle sobre o cdigo

Cdigo legado que no pode ser modificado.

Situaes onde o feedback demorado


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

Copyleft 2004, Tiago E. de Melo

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

Copyleft 2004, Tiago E. de Melo

Referncias

Internacionais:

http://www.extremeprogramming.org/ http://www.xprogramming.com/ http://www.pairprogramming.com/ http://www.xp123.com/

Nacionais:

http://www.xispe.com.br/

Download da Palestra:

http://www.tiagodemelo.info
27

Copyleft 2004, Tiago E. de Melo

Você também pode gostar