Pair Programming: como obter os melhores resultados

Ana Carolina de Araujo
Ship It!
Published in
6 min readMay 20, 2022
Photo by Christina @ wocintechchat.com on Unsplash

Se você trabalha na área de tecnologia, provavelmente já ouviu falar do termo “pair programming”. Essa é uma técnica largamente utilizada e toda pessoa programadora que usa tem uma opinião a respeito: ou ama, ou odeia. Porém, como em tudo na vida, é sempre bom olhar os dois lados. Por isso, continue lendo para descobrir as vantagens do pair programming e em quais cenários é melhor trabalhar sozinho.

Serão elencadas, também, as boas práticas, para que você não irrite seu coleguinha e nem passe raiva ao trabalhar em dupla.

O pessoal da RD Station, empresa de tecnologia situada em Floripa, está super acostumado a trabalhar em pares e deram algumas dicas valiosas para que você saiba definir com mais clareza quando usar essa técnica ou não, da maneira mais proveitosa e menos custosa possível.

  • Por que fazer pair?

Aumenta o comprometimento com as tarefas. O trabalho em conjunto gera o sentimento de comprometimento e melhora o rendimento dos integrantes da dupla. Se você tem um horário marcado com o parceiro, fica mais difícil procrastinar.

Promove o compartilhamento de conhecimento. Pessoas diferentes possuem conhecimentos distintos que podem ser compartilhados, principalmente se as duplas forem revezadas com frequência, gerando um aprendizado mútuo e contínuo.

Melhora a qualidade de códigos, correção de falhas e velocidade na codificação. O código é feito e revisado constantemente pela dupla, tornando as soluções mais simples e limpas. Isso porque sempre vai ter uma pessoa como piloto, comandando e digitando o código, e o copiloto, que faz a revisão. Assim, as falhas e erros são identificados mais cedo e de maneira mais fluida, evitando o longo período que seria gasto para a pessoa programadora procurar problemas ou debugar o código para encontrar defeitos sozinha, tornando assim a codificação mais rápida.

Fortalece a união do time. A técnica de pair demanda a troca periódica dos pares, para que todos os integrantes da equipe compartilhem o conhecimento adquirido e participem de toda a elaboração do código. Isso fortalece o senso de coletividade, o trabalho em equipe e possibilita que os participantes se conheçam melhor. Equipes com a sinergia fortalecida geram mais resultados positivos para a empresa.

  • Em quais cenários o pair não funciona tão bem?

Quando as pausas e um limite de carga horária diária não são respeitadas. Durante o pair, lembre-se que seu colega talvez não a mesma energia que você, ou pode ser que ele perca o foco durante uma sessão muito longa. Por outro lado, não é recomendável fazer pausas ou trocas de pessoa piloto após um período muito curto (poucos minutos), pois pode levar um tempo até que o novo piloto se situe e comece, de fato, a produzir. Para aumentar a produtividade, também é indicado que a técnica não seja utilizada por muitas horas no mesmo dia.

Quando o prazo para entregar as tarefas é curto e as demandas são simples, menores e/ou rotineiras. Nessas situações, pode ser mais eficiente separar as pessoas desenvolvedoras para que possam trabalhar individualmente em tarefas distintas.

Quando seu par se repete com muita frequência. Isto pode gerar um nivelamento de conhecimentos técnicos e um excesso de confiança no trabalho do outro, levando a uma redução gradativa das interações. Esse cenário poderia afetar algumas das grandes vantagens do pair em termos de compartilhamento de conhecimentos e de aumento na qualidade do código.

Quando uma das partes não se sente confortável para a prática do pair naquele momento. Para que o pair programming possa ser benéfico é fundamental que ambas as partes tenham vontade de codar em conjunto. Em alguns momentos, você pode simplesmente preferir trabalhar em suas próprias ideias e ficar mais introspectivo. Se não estiver no clima naquele momento para trabalhar com seu parceiro, deixe pra próxima.

Quando as agendas de ambos os programadores não batem. O pair programming exige que os trabalhos sejam realizados de forma síncrona e, hoje em dia, com a expansão do trabalho remoto, muitas vezes as pessoas programadoras podem fazer sua própria agenda e trabalhar nos horários em que se sentem mais produtivas. Nos casos em que não há tanta flexibilidade de agenda, a prática do pair pode não ser a mais eficiente.

  • Quais as boas práticas no pair sob o olhar dos RDoers?

Alinhamento entre a dupla é essencial. Antes de tudo, é importante ter em mente que as pessoas têm experiências diferentes, por isso é essencial ter uma boa comunicação entre a dupla para que as expectativas estejam alinhadas, a fim de minimizar eventuais conflitos durante a prática de pair programming. A dica aqui é: no primeiro contato com sua dupla, tenha um diálogo aberto sobre seus limites, o que você espera da outra pessoa e lembre-se de perguntar também o que o outro espera de você, assim vocês entrarão nessa jornada se conhecendo mais. Esse momento também é importante para alinhar os resultados que ambos buscam atingir e, assim, evitar o retrabalho. Enquanto a outra pessoa pilota, dê a ela a autonomia de escrever os códigos do seu jeito e se limite a fazer intervenções apenas quando forem realmente necessárias. Mostre que você valoriza o esforço do seu colega e construa feedbacks assertivos quando for necessário.

Esteja aberto a novos aprendizados. A prática visa à troca de conhecimento entre os pares e garante a qualidade da entrega, já que “duas cabeças juntas pensam melhor que uma”. Por isso é importante para a prática a junção de pessoas de diferentes níveis de conhecimento, que ficarão intercalando suas posições como pessoa piloto e pessoa copiloto, de acordo com o combinado entre a própria dupla. Na RD Station, esta escolha é bem livre para que os RDoers fiquem à vontade para fazer seus próprios acordos, já que cada pessoa é única e nem tudo que funciona para um vai funcionar para o outro. Tenha em mente que fazer o pair programming significa chegar em soluções em conjunto. Por isso, estes alinhamentos são importantes para que, juntos, vocês possam encontrar um ponto de equilíbrio no qual ambos aprendam e evoluam em questões técnicas e/ou soft skills.

Cuide da sua saúde e da saúde do seu par. Para que o pair programming seja uma prática frequente, é necessário respeitar os indivíduos, fazendo pausas durante a jornada de trabalho. Desta forma, este momento de compartilhar conhecimentos não fica exaustivo. Os intervalos também devem ser acordados entre os integrantes da dupla para que ambos façam o melhor proveito.

Fique atento à hora de trocar os papéis. Na prática, alguns times optam por deixar que a pessoa piloto esteja em ação até a solução de uma determinada parte do projeto, então ocorre a troca de papéis entre a dupla até a solução final. Também é comum que se definam períodos de tempo utilizando a técnica pomodoro, na qual cada pessoa desenvolvedora faz o papel de piloto/copiloto por cerca de 25 minutos, depois invertem-se os papéis considerando as pausas para descanso até que a entrega final ocorra. Essas boas práticas são importantes para manter o padrão e a excelência no código, além de possibilitar a continuidade do projeto na ausência de um dos integrantes do pair.

A cultura de pair programming é muito bem recebida e elogiada pelos RDoers:

Fotografia do Daniel Vinciguerra, que é Tech Leader na RD Station, e uma citação dele, que diz: “Eu vejo que na cultura da RD Station existe toda uma magia que faz com que as pessoas genuinamente queiram usar essa ferramenta para compartilhar conhecimento. Na RD a prática do pair não é exceção, é a regra. Você não faz somente se não fizer sentido.” (editado)
Fotografia do Francis Oliveira, que é Software Engineer na RD Station, e uma citação dele, que diz: “O pair programming fica muito interessante quando se tem um card para resolver e ambos os pairs não tem muito conhecimento no assunto e precisam se ajudar.” (editado)

Fica evidente, portanto, que na RD Station, embora não existam regras determinando a realização de pair, as pessoas desenvolvedoras tendem a utilizar essa técnica porque as vantagens se sobrepõem às desvantagens, e todo mundo sai ganhando.

Para encerrar a conversa, pode-se afirmar que, apesar das possíveis dificuldades de implementação, a prática do pair programming pode ser muito produtiva e trazer diversos benefícios para o time, desde que os envolvidos estejam realmente abertos e dispostos a colocar os objetivos coletivos acima dos individuais. Na RD, apesar de não haver uma recomendação padrão, todos os times são estimulados a utilizar a prática do pair programing da forma e na frequência que preferirem, já que seu uso está intimamente alinhado a alguns dos princípios do código de cultura da empresa, como A Team e Out-teach (Saiba mais sobre nosso culture code aqui).

E você, já adotou o pair programming no seu dia-a-dia como dev?

Na RD Station o pessoal é super colaborativo. Venha conferir nossas vagas!

Co-autoras: Cristhyane Araldi, Giovanna Alyssa, Isadora Caprini, Lia Farias, Renata Matsumoto, Sarah Nani, Stefanny Ferreira e Thais Santiago.

--

--

Ana Carolina de Araujo
Ship It!
Writer for

Formada em Direito em 2012, pós-graduada em 2014, funcionária pública do Estado de São Paulo até março de 2022, atualmente desenvolvedora trainee.