Pair programming — materiais confiáveis para lhe ajudar nesse tema
Parear ou não parear? Aqui você encontrará embasamento para tomar essa decisão!
Breve explicação. Se você já conhece a prática, pode pular essa parte!
Trabalhar em par é uma prática descrita em XP (eXtreme Programming) e ela é uma alavanca poderosa para promover a propriedade coletiva de código fonte.
No pareamento, duas pessoas estarão trabalhando na mesma tarefa e no mesmo computador durante uma fração de tempo (pode ser horas ou dias ou semanas). Após essa fração de tempo, sugere-se trocar a dupla, ou seja, realizar o move people around, que é outra prática de XP.
No pair programming, uma pessoa começa no teclado (na função driver, ou seja, digitará o código) e a outra pessoa irá fazer o papel de navegador (navigator), dando as instruções de como resolver o problema. De tempos em tempos (25 min, por exemplo), os papéis se invertem. Durante a codificação, utiliza-se testes unitários para garantir a qualidade do trabalho.
“Duas pessoas na mesma tarefa??? Isso é desperdício!!!”
Esse questionamento é feito com frequência por lideranças quando surge a ideia de utilizar essa prática para determinadas tarefas. Pensando nisso, preparei um conjunto de conteúdos relevantes e com profundidade para te dar mais segurança na hora de adotar essa prática.
[TL;DR]:
- O que é programação em par e quais são seus benefícios?
- Razões para você não caminhar numa jornada solitária na programação
- Parear consome 15% a mais de tempo total de trabalho mas reduz, pelo menos, 15% a quantidade de códigos com defeito
- Pareamento acaba com o comportamento isolado e de ego do programador e ativa áreas cerebrais que não são ativadas enquanto se programa solitariamente
- Conselhos e lições aprendidas ao realizar pareamento
- Parear numa visão de neurociência
- Case de sucesso e pontos de atenção do pareamento — Objective
- Case de redução de bugs e aumento de vazão de tarefas com pareamento — LuizaLabs
- Case de sucesso de TDD e Pair programming, afetando a cultura organizacional — Ateliê de Software
- Ao invés de parear, por que não todos do time trabalhando ao mesmo tempo na mesma tarefa (mob programming)?
Parear consome 15% a mais de tempo total de trabalho mas reduz, pelo menos, 15% a quantidade de códigos com defeito
Em fevereiro de 2000, surgiu o primeiro estudo sobre os benefícios da programação pareada. Alistair Cockburn e Laurie Williams realizaram um estudo analisando a quantidade de tempo que o pareamento consome. Foi descoberto que a diferença de tempo é de 15% a mais frente ao trabalho solitário e não o dobro do tempo, como costuma-se afirmar.
Além disso, foi percebido aumento na qualidade de código (ou seja, menos bugs), menos linhas de código (mais simplicidade) e maior satisfação do time ao trabalhar com pareamento.
Pareamento acaba com o comportamento isolado e de ego do programador e ativa áreas cerebrais que não são ativadas enquanto se programa solitariamente
Em 2016, Jon Jagger apresentou no NorDevCon uma palestra sobre pair programming e nela ele apresenta o conceito Egoless e como a programação pareada pode ajudar para que esse conceito seja aplicado a sua cultura organizacional.
Ele também apresenta como a troca de informações no pareamento ativa partes do cérebro que ficam “dormentes” quando você programa sozinho.
Além disso, ele referencia o estudo de produtividade e qualidade citado no tópico acima.
Conselhos e lições aprendidas ao realizar pareamento
No link abaixo você encontrará diversas informações sobre programação pareada, padrões e antipadrões dessa prática.
Parear numa visão de neurociência
Gisele Morilha Gonçalves realizou um estudo aplicando neurociência com a prática ágil de programação pareada. Os resultados podem ser assistidos no vídeo a seguir:
Razões para você não caminhar numa jornada solitária na programação
Ron Jeffries escreveu 12 tweets refletindo sobre o trabalho solitário de programação. Na imagem abaixo você encontrará a primeira parte, para conferir os outros 11 tweets, acesse o link https://twitter.com/RonJeffries/status/1114808214648967168?s=20
Case de redução de bugs e aumento de vazão de tarefas com pareamento — LuizaLabs
Victor Castanheiro e Rafael Raza de Campos compartilharam o case deles na LuizaLabs. Nesse case, eles aplicaram programação em par e tiveram redução de bugs (código com defeito) em 75% e com menos bugs, foi possível entregar mais tarefas de valor a cada semana.
Os aprendizados foram tantos que até o formato da mesa foi alterado para ter maior efetividade na programação em par.
Case de sucesso de TDD e Pair programming, afetando a cultura organizacional — Ateliê de Software
Aline Garcia e Matheus Haddad do Ateliê de Software, apresentaram um case sobre o impacto da adoção do pair programming e TDD no dia a dia da empresa. Ao adotar ambas as práticas, a cultura de aprendizado é desenvolvida, junto com a autonomia.
Case de sucesso e pontos de atenção do pareamento — Objective
A empresa Objective tem um case detalhado de como foi escalado o ágil dentro de suas equipes de software através da adoção de diversas práticas ágeis, dentre ela o pareamento de software e testes unitários. No vídeo abaixo você vai ouvir a trajetória de erros e sucessos com pair programming.
O que é programação em par e quais são seus benefícios?
Nesse material, andrefaria descreve de o que é a programação em par, quais áreas do cérebro são ativadas com essa prática e como ela ajuda você a chegar no Flow State.
Ao invés de parear, por que não todos do time trabalhando ao mesmo tempo na mesma tarefa (mob programming)?
Woody Zuill é o criador do Mob Programming. Ele esteve no Agile Brazil de 2019 compartilhando sobre essa prática. A palestra está disponível no link abaixo e você entenderá como Mob pode reduzir o leadtime das tarefas e aumentar a qualidade do trabalho.
Com Mob Programming, todas as pessoas de um time estarão numa mesma sala e no mesmo computador, resolvendo um único problema. Com isso, o tempo de interrupções será próximo a zero, não existindo desperdício.
Tim Ottinger, escreveu uma série de dicas para realizar mob programming de forma efetiva.
Caso você tenha outros links de conteúdos sobre programação pareada, adicione nos comentários!!! Até a próxima!