Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

16
Extreme Extreme Programmig Programmig Programação em Programação em Duplas Duplas Dificuldades e Benefícios Dificuldades e Benefícios

Transcript of Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Page 1: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Extreme Extreme ProgrammigProgrammig

Programação em Programação em DuplasDuplas

Dificuldades e BenefíciosDificuldades e Benefícios

Page 2: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Pair ProgrammingPair Programming

Comparações IniciaisComparações Iniciais

O que é?O que é?

MitosMitos

BenefíciosBenefícios

DificuldadesDificuldades

Page 3: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Pair ProgrammingPair Programming

Page 4: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Não é pair programmigNão é pair programmig

Page 5: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Local de trabalhoLocal de trabalho

RuimMelhor

Melhor Modelo

(Estudio XP)

Page 6: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Testes Passados, após Testes Passados, após desenvolvimentodesenvolvimentoPost Development Test Cases Passed

0.0%10.0%20.0%30.0%40.0%50.0%60.0%70.0%80.0%90.0%

100.0%

Program 1 Program 2 Program 3 Program 4

Individuals

Collaborators

Page 7: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Tempo PerdidoTempo Perdido

Elapsed Time

0.0%

20.0%

40.0%

60.0%

80.0%

100.0%

120.0%

Program 1 Program 2 Program 3

One Individual One Collaborator

Page 8: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

O que é pair O que é pair programming?programming?

Um dos pilares da Extreme Programming.Um dos pilares da Extreme Programming. Alocação de duas pessoas para trabalhar Alocação de duas pessoas para trabalhar

no desenvolvimento de uma mesma função.no desenvolvimento de uma mesma função. Um dos membros do par será responsável Um dos membros do par será responsável

por pilotar.por pilotar. O outro será auxiliar e revisará o código.O outro será auxiliar e revisará o código. XP prevê a mudança de “papéis” entre as XP prevê a mudança de “papéis” entre as

duplas.duplas. Código de desenvolvimento se torna Código de desenvolvimento se torna

coletivo.coletivo.

Page 9: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

MitosMitos

Aumento de custos no desenvolvimento Aumento de custos no desenvolvimento de software.de software.

Não há ganhos aparentes.Não há ganhos aparentes. O tempo de desenvolvimento cairá pela O tempo de desenvolvimento cairá pela

metade.metade. Nunca ouvi falar... Será mesmo que Nunca ouvi falar... Será mesmo que

funciona?funciona? Aumento do esforço no desenvolvimento Aumento do esforço no desenvolvimento

para os programadores.para os programadores.

Page 10: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Principais BenefíciosPrincipais Benefícios Troca de papéis permite que ninguém Troca de papéis permite que ninguém

fique isolado no desenvolvimento do fique isolado no desenvolvimento do projeto. Amplia comunicação da equipe.projeto. Amplia comunicação da equipe.

Código Padronizado: com dois Código Padronizado: com dois profissionais trabalhando num mesmo profissionais trabalhando num mesmo problema torna-se mais fácil aderir aos problema torna-se mais fácil aderir aos padrões de projetos impostos pela padrões de projetos impostos pela organização.organização.

Estudos comprovam que o código Estudos comprovam que o código produzido por duplas são 20% mais produzido por duplas são 20% mais compactos e consistentes do que os compactos e consistentes do que os produzidos por programadores solitários.produzidos por programadores solitários.

Page 11: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Principais BenefíciosPrincipais Benefícios Equipe Nivelada: Sem necessidade de Equipe Nivelada: Sem necessidade de

esforço extra para a assimilação dos esforço extra para a assimilação dos padrões definidos pela empresa. Uma padrões definidos pela empresa. Uma nova descoberta será disseminada nova descoberta será disseminada facilmente entre as duplas, uma vez que facilmente entre as duplas, uma vez que existe o rodízio de pares. Minimização existe o rodízio de pares. Minimização de problemas decorrentes por falhas de de problemas decorrentes por falhas de comunicação. Muitas vezes uma nova comunicação. Muitas vezes uma nova descoberta fica restrita a poucas descoberta fica restrita a poucas pessoas por falha na comunicação entre pessoas por falha na comunicação entre os membros do projeto.os membros do projeto.

Page 12: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Principais BenefíciosPrincipais Benefícios

Facilidade para a entrada de novos Facilidade para a entrada de novos profissionais: acompanhamento de profissionais: acompanhamento de profissionais mais experientes. profissionais mais experientes. Conhecimentos mais rápido dos padrões Conhecimentos mais rápido dos padrões impostos pela organização.impostos pela organização.

Aumento da qualidade do software sem Aumento da qualidade do software sem aumentar o prazo de entrega: “Duas aumentar o prazo de entrega: “Duas cabeças pensam melhor do que uma”. cabeças pensam melhor do que uma”. Estatísticas comprovam mais rapidez no Estatísticas comprovam mais rapidez no desenvolvimento em duplas em relação desenvolvimento em duplas em relação ao solitário.ao solitário.

Page 13: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Principais BenefíciosPrincipais Benefícios

Soluções de maior qualidade: os testes Soluções de maior qualidade: os testes são melhor elaborados e são melhor elaborados e conseqüentemente o custo com a conseqüentemente o custo com a manutenção após o termino do software manutenção após o termino do software são consideravelmente menores.são consideravelmente menores.

Pessoas ficam constrangidas em realizar Pessoas ficam constrangidas em realizar atividades alheias ao trabalho: Com a atividades alheias ao trabalho: Com a sua dupla ao lado “vigiando” pessoas se sua dupla ao lado “vigiando” pessoas se distraem menos em trabalho.distraem menos em trabalho.

Page 14: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

Principais DificuldadesPrincipais Dificuldades

Problemas culturais: Choque de Problemas culturais: Choque de culturas entre duas pessoas com culturas entre duas pessoas com conceitos diferentes. Programadores conceitos diferentes. Programadores com problemas de relacionamento.com problemas de relacionamento.

Programadores com níveis de Programadores com níveis de experiência muito diferentes tendem experiência muito diferentes tendem a demorar até encontrar o a demorar até encontrar o entrosamento perfeito.entrosamento perfeito.

Dificuldades com o código coletivo.Dificuldades com o código coletivo. Dificuldade de aceitação na aplicação Dificuldade de aceitação na aplicação

em empresas.em empresas.

Page 15: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

ConclusãoConclusão

Aquilo que pode parecer inicialmente Aquilo que pode parecer inicialmente um aumento de custos e esforços para a um aumento de custos e esforços para a empresa pode ser um investimento em empresa pode ser um investimento em qualidade e redução dos prazos de qualidade e redução dos prazos de entrega. Reduz custos após implantação entrega. Reduz custos após implantação porque o código fica melhor testado e porque o código fica melhor testado e mais eficiente. Aumento de comunicação mais eficiente. Aumento de comunicação e integração entre membros de uma e integração entre membros de uma equipe, melhora no ambiente de equipe, melhora no ambiente de trabalho.trabalho.

Page 16: Extreme Programmig Programação em Duplas Dificuldades e Benefícios.

ReferênciasReferências Pair Programming Illuminated Pair Programming Illuminated - Laurie - Laurie

Williams, Robert KesslerWilliams, Robert Kessler

www.www.pairprogrammingpairprogramming.com.com

www.extremeprogramming.org/rules/pair.htmlwww.extremeprogramming.org/rules/pair.html

http://collaboration.csc.ncsu.edu/laurie/Papers/XPhttp://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.pdfSardinia.pdf

http://www.cs.utah.edu/%7Elwilliam/Papers/ieeeShttp://www.cs.utah.edu/%7Elwilliam/Papers/ieeeSoftware.pdfoftware.pdf

http://http://www4www4..ncsuncsu..edu/~lawilli3/PP/tutorialedu/~lawilli3/PP/tutorial..pptppt