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

Post on 17-Apr-2015

108 views 2 download

Transcript of 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

Pair ProgrammingPair Programming

Comparações IniciaisComparações Iniciais

O que é?O que é?

MitosMitos

BenefíciosBenefícios

DificuldadesDificuldades

Pair ProgrammingPair Programming

Não é pair programmigNão é pair programmig

Local de trabalhoLocal de trabalho

RuimMelhor

Melhor Modelo

(Estudio XP)

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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