Parear ou não Parear? Eis a questão — Parte III

Tania Dearo
Creditas Tech
Published in
5 min readFeb 18, 2021
Photo by Kristin Hardwick from StockSnap

Agora que já entendemos melhor o que é o Pair Programming, quais os benefícios e dificuldades que envolvem a adoção da prática, vamos pontuar alguns dos desafios mais comuns e ver o que pode ser feito para superá-los.

Desafios e como abordá-los

Assim como existem os clássicos benefícios que se obtém da atividade de Pair Programming, também existem os clássicos desafios que muitas vezes são usados como desculpa para deixar a técnica de lado. Abaixo, estão alguns desses desafios e como abordá-los:

Parear pode ser exaustivo. Falta de tempo para si mesmo.

Quando estamos programando sozinhos, podemos parar por alguns momentos e seguir um fluxo de raciocínio ao qual nos sentimos mais confortáveis. Quando se está trabalhando em pares é necessário ter mais atenção e estar focado durante toda a atividade. Além disso, o nosso cérebro se vê seguindo o raciocínio da outra pessoa, o que é cansativo.

O que fazer

  • Faça intervalos!
  • Façam sessões curtas de trabalho com pequenos intervalos (20 a 30 minutos)
  • Não passe todo o dia trabalhando em dupla (limite a 4 ou 5 horas por dia)
  • Troque de papel entre “condutor” e “navegador” com frequência.

Colaboração intensa pode ser difícil

Trabalhar de forma colaborativa, pode ser muito intenso. É necessário que exista comunicação o tempo todo e a preocupação de que sua mensagem está sendo entendida. Provavelmente também vai existir diferenças com relação ao nível ou área do conhecimento (técnico, de negócio, contexto). Ou seja, vai existir um esforço constante para manter esse alinhamento.

O que fazer

  • Alinhar no início da sessão as expectativas com relação a atividade.
  • Decidir qual o melhor modelo de Pair Programming que vai ser seguido.
  • Ao final da atividade, façam uma troca de feedbacks e entendam o que funcionou e o que pode-se melhorar.

Interrupções por reuniões

Esse tópico não necessita muita explicação. Reuniões fazem parte do dia-a-dia de qualquer profissional e quando existe uma reunião no meio de uma sessão de pairing, isso pode quebrar completamente o fluxo.

O que fazer

  • Planejar as sessões de pairing e colocá-las fora dos horários de reuniões.
  • Ter espaços no calendário “bloqueados” para as sessões de pairing.

Distintos níveis de conhecimento

É muito comum que participem pessoas com níveis de conhecimento distintos. É um desafio promover a participação efetiva de ambos profissionais, mas isso também deve ser encarado como uma oportunidade de troca de conhecimento.

O que fazer

  • Nunca assuma que a pessoa com menos conhecimento não tem o que contribuir na sessão e nem que a pessoa mais experiente não terá nada que aprender.
  • Alinhar qual o melhor modelo de pairing a usar.

Rotacionar leva a mudanças de contexto

A rotação de pares tem um custo. Isso leva a mudança de contexto, perda de ritmo e às vezes perda de foco. Porém, existem momentos que ela é necessária para que uma atividade não fique bloqueada ou simplesmente para trazer novas energias para a atividade.

O que fazer

  • No início da atividade, durante o planejamento, escreva no Jira as decisões importantes e o passo-a-passo definido naquele momento.
  • Sempre que houver oportunidade, faça a rotação, isso pode ajudá-los a evoluir na prática.

Parear exige vulnerabilidade

Quando trabalhando com alguém, você precisa estar confortável para expor suas dúvidas e falar sobre coisas que você desconhece. E isso pode ser muito difícil para algumas pessoas. Para que a atividade de parear traga melhores resultados, todos os envolvidos devem estar confortáveis em mostrar suas dúvidas e desconhecimentos.

O que fazer

  • Crie um ambiente seguro onde todos se sintam confortáveis de expôr qualquer tipo de dúvida ou opinião.

Parear ou não Parear?

Existem certos tipos de atividade, seja de programação ou não, que fazem parte do dia-a-dia do programador e é comum que surja a dúvida se vale a pena ou não fazer Pair Programming.

Pesquisa e investigação

Algumas dessas atividades envolvem algum conhecimento inexistente e será necessário fazer algum tipo de pesquisa prévia. E fazer isso em par, simplesmente não é efetivo. Nestes casos, é possível seguir a seguinte abordagem:

  • Defina a lista de questões que devem ser esclarecidas antes.
  • Se separem e pesquisem as questões levantadas (dividam as perguntas ou busquem respostas para as mesmas questões).
  • Voltem a se reunir depois do período acordado e discutam as respostas encontradas por cada um.

Documentação

Documentação é outra atividade que envolve o trabalho de um programador que não é programar. Ao desenvolver um recurso (em pares) analise a necessidade de documentar. E caso exista, a documentação pode ser criada junto ou um pode escrever e o outro revisar.

Programar

Problemas demasiado complexos podem não ser ideias para serem resolvidos em pares. A interação pode tirar a concentração necessária para esse tipo de desafio. Por outro lado, um problema que é muito complexo para um desenvolvedor, pode ser mais simples para outro. Então, é indicado que em casos como estes, se inicie a tarefa em pares, esclareça o problema, trace possíveis soluções e depois, se necessário, se separe para fazer pesquisas e aprofundar o conhecimento.

Outro caso que não justifica a programação em pares são as atividades extremamente simples e triviais.

E no meio existem a vasta maioria de atividades que não são triviais e nem super complexas. Nestes casos, a programação em duplas gera mais valor. Desenvolvê-las em pares mantém o código bem testado, bem estruturado e o mais simples possível.

Sinais de sucesso

Você e sua equipe saberão se a atividade de Pair Programming está trazendo os resultados esperado quando vocês observarem as seguintes características:

Conhecimento compartilhado

Todos ou a maioria dos membros da equipe possuem conhecimento suficiente das atividades que estão sendo executadas. Quando alguém tem que se ausentar, mesmo sem planejamento prévio, a equipe é capaz de assumir as atividades pendentes sem maiores problemas.

Foco em resolver principais problemas

Toda a equipe está envolvida em resolver os problemas mais prioritários e que estão todos focados em trazer a melhor solução possível para o contexto existente.

Mais revisão de código

Se nota que o código produzido pelo time tem mais qualidade. Já não são produzidos tantos bugs e a revisão das Pull Requests se torna mais ágil.

Melhoria nas soluções

Quando duas pessoas estão trabalhando em uma solução cada uma aporta seu ponto de vista e o simples fato de discuti-la com outra pessoa leva a desenhar diferentes soluções. E assim é possível escolher a melhor solução para aquele problema.

Propriedade coletiva do código

Todos da equipe estão confortáveis em assumir qualquer tipo de atividade que precise ser feita.

Manter os WIP do time baixo

Todo o time está focado em fazer as atividades que têm mais prioridades e finalizá-las antes de passar as seguintes tarefas.

Rápido onboarding de novos membros da equipe

Quando todo o time está a vontade com a atividade de Pair Programming, entende seus benefícios e como tirar o maior proveito da técnica, o onboarding de novos membros da equipe passam a ser feitos de maneira rápida e natural.

Tem interesse em trabalhar conosco? Nós estamos sempre procurando por pessoas apaixonadas por tecnologia para fazer parte da nossa Tripulação! Você pode conferir nossas vagas aqui.

--

--

Tania Dearo
Creditas Tech
0 Followers
Writer for

So many things, among them Software Engineering at @CreditasTech