Your SlideShare is downloading. ×
XP - Extreme Programming
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

XP - Extreme Programming

1,025
views

Published on

Uma destas metodologias de desenvolvimento ágil é o Extreme Programming, visando a grande qualidade do software desenvolvido e atendendo ás reais necessidades do cliente.

Uma destas metodologias de desenvolvimento ágil é o Extreme Programming, visando a grande qualidade do software desenvolvido e atendendo ás reais necessidades do cliente.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,025
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
51
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programação Extrema - XP Motivação: * Necessidade de software de qualidade com rapidez. * Apenas 16,2% dos softwares atingiam sucesso em 1994 e, em 2002 subiu para 34%(Standish Group International). * Vários motivos para a baixa taxa de sucesso dos modelos tradicionais: ->Tempo elevado entre cada fase do projeto, demora p/ versões funcionais; -> Falta de conhecimento por parte do cliente da sua real necessidade; -> Ênfase na burocracia (diagramas UML, documentos, formulários, crogramas rígidos); -> Grande quantidade de erros, gerando desconfiança no software; Programação Extrema - XP Solução:*Focando nas fragilidades do modelo tradicional, surgiram metodologias p/ desenvolvimento ágil de software. -> Foco nas pessoas, não no processo, evitando especulações dos desenvolvedores; -> Garantir a satisfação do cliente entregando rapidamente e contiuamente softwares funcionais; -> O cliente aprender suas reais necessidades durante o projeto e, repassá-las aos desenvolvedores. -> Software em funcionamento mais que documentação abrangente; -> Testes para evitar bugs;* Uma destas metodologias de desenvolvimento ágil é o Extreme Programming, visando a grande qualidade do software desenvolvido e atendendo ás reais necessidades do cliente. 1
  • 2. Programação Extrema - XP Os valores do XP: *Comunicação: Entre os desenvolvedores, e entre a equipe e o cliente. *Simplicidade: Fazer sempre a coisa mais simples que pode funcionar. (KISS) *Feedback: Saber oque está funcionando a todo o momento. *Coragem: Código feio? fatore, código muito feio? jogue fora e começe denovo! *Respeito: Saber ouvir e compreender os outros. Programação Extrema - XP As 12 Práticas do XP1. Planejamento 1. Propriedade Coletiva2. Fases Pequenas 2. Integração Contínua3. Metáfora 3. Semana de 40 horas4. Design Simples 4. Cliente junto aos5. Testes desenvolvedores6. Refatoração 5. Padronização do código7. Programação Pareada 2
  • 3. Programação Extrema - XP PlanejamentoO desenvolvimento é feito em iterações semanais. No início da semana,desenvolvedores e cliente reúnem-se para priorizar as funcionalidades Fases Pequenas A liberação de pequenas versões funcionais do projecto auxilia muito noprocesso de aceitação por parte do cliente, que já pode testar uma parte do sistema que está comprando MetáforaProcura facilitar a comunicação com o cliente, entendendo a realidade dele. Guie o desenvolvimento usando uma estória simples. Programação Extrema - XP Design Simples Simplicidade é um princípio da XP. Implemente apenas a funcionalidade que foi solicitada. Não confundir simples com fácil. TestesPodem ser de diversos tipos, tais como: de aceitação; que são criados pelosclientes junto com analistas, para determinar a aceitação da funcionalidade do sistema; TDD; Testes de Integração e outros; Refatoração É um processo que permite a melhoria continua da programação, com omínimo de introdução de erros e mantendo a compatibilidade com o código já existente. Refabricar melhora a clareza do código, divide-o em módulosmais coesos e de maior reaproveitamento, evitando a duplicação de código- fonte 3
  • 4. Programação Extrema - XP Programação PareadaÉ a programação em par/dupla num único computador. Reduz o numero de bugs e equilibra a equipe. Propriedade Coletiva O código-fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer todas as partes do sistema. Integração ContínuaSempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema Programação Extrema - XP Semana de 40 horas Trabalhar com qualidade, buscando ter ritmo de trabalho saudável (40 horas/semana, 8 horas/dia), sem horas extras. Cliente junto aos desenvolvedores O cliente permanece o tempo todo a par do desenvolvimento do software, indicando modificações e esclarecendo duvidas da equipe. Padronização do código A equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir estas regras. A código fonte final deve parecer ter sido feito por apenas um programador. 4
  • 5. Programação Extrema - XP Jogo do Planejamento Elaboração das Histórias (Exploração)1) Histórias determinam algo que o sistema precisa fazer, são descritas pelo cliente.2) O tempo para elaborar uma história é estimado pelo time.3) Caso uma história fique muito grande, ela é dividida em tarefas. Programação Extrema - XP Jogo do Planejamento Fase do comprometimentoDefine a data da próxima entrega, e quais histórias serão implementadas.Classificação por valor: Cliente classifica as histórias em 3 pilhas de prioridades.Classificação por risco: Time divide as histórias em: estimadas precisamente,estimadas razoavelmente bem e as que não conseguem ser estimadas.Definição de velocidade: Time informa o cliente a rapidez que o time pode trabalhar em condições ideais.Escolha do Escopo: Cliente escolhe as histórias que farão parte da próxima versão. 5
  • 6. Programação Extrema - XP Jogo do Planejamento Fase de DirecionamentoTem como propósito atualizar o plano de desenvolvimento, ”muda o curso do vôo”.Permite criar novas histórias, redefinir histórias e mudar a velocidade de desenvolvimento. Jogo do ponto de vista do desenvolvedor:O desenvolvedor escolhe uma história, senta com outro desenvolvedor e a implementa. Reuniões de pé:Rápidas e com todo o time reunido, colocam em dia oque cada um fez e servem para aumentar a comunicação além de dar feedback sobre o andamento do projeto. Programação Extrema - XP Programação em Pares Dois programadores no mesmo computador; Geralmente um programador com mais experiência e um novato. Novato responsável pela codificação, o experiente acompanha ajudando a desenvolver suas habilidades. O programa desenvolvido é visto por pelo menos duas pessoas em tempo de codificação, reduzindo assim o numero de bugs possíveis. Evolução da equipe no processo, visto que o novato é treinado nas técnicas de XP desde o inicio de sua participação. A equipe torna-se mais equilibrada. 6
  • 7. Programação Extrema - XP Visão de DesenvolvimentoProgramação Extrema - XP Visão de Iterações 7
  • 8. Programação Extrema - XP MetáforasAo criar comparações e análogias com o dominio em questão o timepassa criar um vocabulário comum, que passa a ser usado paramodelar o sistema e definir sua arquitetura. Programação Extrema - XP TestesNão existem “testadores”, todo o desenvolvedordesenvolve testes.Com base nos testes que o desenvolvedor teráa coragem de alterar o sistema.Garantem que o sistema faz oque deve serfeito.Na XP existem os testes de unidade e deaceitação. 8
  • 9. Programação Extrema - XP Testes de Unidade São escritos pelos desenvolvedores enquanto codificam o sistema. Devem ser automatizados e rápidos de executar. Devem ser criados para todas as classes do sistema. São escritos antes da implementação(TDD). São um meio de comunicação entre os desenvolvedores, São a fonte de coragem para realizar a fatoração. Programação Extrema - XP Testes de AceitaçãoOriginalmente chamado de teste de funcionalidade.São escritos pelo cliente.São escritos no momento da escrita da história.O cliente sabe quando uma funcionalidade é terminada.Para cada história deve existir pelo menos um teste de aceitação. Uma história só é declarada terminada quando seus testes deaceitação passarem. 9
  • 10. TDD e Fatoração:1)Crie um teste.2)O teste não compila(a classe ainda não foi implementada!)3)Faça compilar.4)Veja o teste falha, ótimo, o teste falhou!5)Implemente o código mais simples que faça o teste passar.6) Fatore, removendo duplicação e tornando o código mais legível e flexivel.7) Volte para o passo 1, até que não consiga pensar em mais nada para testar. Bibliográfia: BECK, Kent. Programação extrema explicada:acolha as mudanças - Porto Alegre : Bookman, 2004; BECK, Kent. Test Driven Development; http://www.improveit.com.br/xp http://www.extremeprogramming.org/; 10