Senta aí e bora codar junto!

Pair Programming é uma prática que eu a-do-ro fazer. É um momento em que temos 2 profissionais juntando forças para criar o melhor resultado de alguma tarefa, seja um algoritmo complexo ou algo grandioso, onde um acelera o outro. Porém, na realidade (ahh a realidade…) não é bem assim, e na grande maioria das vezes gastamos tempo, não de um dev, mas de dois. Então, bora trocar uma ideia sobre como tocar um pair programming maneiro com o mínimo de desvios possíveis e, com sorte, não gastar muito dinheiro com dois devs.

Antes de tudo, precisamos deixar algumas coisas extremamente alinhadas para que tais práticas deem certo, são elas:

  • Pessoas: Não adianta querer implementar tais atividades colaborativas se as pessoas envolvidas não são tão colaborativas assim. Nisso, nem entra o fato da pessoa ser mais fechada ou não, mas é muito comum que, diante de um problema ou algo que necessite de esforço, fazer sozinho aumenta a concentração e não adianta tirar a pessoa da linha de raciocínio. Portanto, respeite a particularidade de cada um.
  • Objetivo: Isso é o primordial (obviamente), para não se perder em papos aleatórios ou em como se ajudar, é preciso ter uma tática de guerra com um objetivo bem definido. É só assim que conseguimos realmente tirar o poder do trabalho em conjunto.
  • Como será: Pegando o gancho da tática de guerra, precisa já ter em mente como ou onde será feito. Se ambos estão remotos, extensões como LiveShare do VSCode para que ambos tenham o mesmo ambiente ou, de repente, uma call direta com ambos em uma branch? Tem vários jeitos de fazer o mesmo, antes de começar, já tenha em mente como será feito para poder aproveitar o tempo de ambos. Ter acordado como será o estilo de pareamento é de extrema importância.

Com esses três passos bem alinhados, é partir para o objetivo, facilitando o trabalho, discussões profissionais, suporte, troca de conhecimento e muito código rolando. Lembre-se das pausas, quando focamos em algo, às vezes esquecemos de nós mesmos e, no pair programming, pode ocorrer de não querer cortar a outra pessoa que está empolgadona. Corte, respirem, deem uma volta e continuem.

Pair programming é a oportunidade perfeita para aprender um com o outro. Portanto, faça da situação sempre um ganha-ganha, pedindo opinião, puxando discussões profissionais e trocando feedbacks.

A grande dificuldade que encontramos nesses tipos de técnica é o alinhamento entre os dois profissionais, pois a diferença de senioridade pode ser algo extremamente prejudicial à prática, levando a alguns antipatterns, como:

  • Só um trabalhar ou ditar as coisas;
  • Tornar-se uma mentoria, não uma ação em conjunto;
  • E a famosa briga de ego, quando dois "mestrões" sentam juntos, onde acontece mais discussão de soluções ao invés de resolvê-las.

Enfim, trabalhar com pessoas é difícil, e sendo bem sincero, para obter os reais benefícios de solucionar algo complexo da melhor maneira, onde ambos profissionais saem com mais experiência do que entraram, é bem raro. Normalmente, o custo de ocupar profissionais é maior do que o ganho gerado no código. No entanto, hoje em dia temos disponível a maravilhosa IA com LLM que nos permite, de fato, ter toda a interação, feedbacks, com foco na solução, retirando totalmente o fator humano.

Por isso, ideias de "copilot" são bem mais interessantes de serem usadas no dia a dia do que deixar uma IA resolver tudo automaticamente. Você, como desenvolvedor, PRECISA tirar proveito disso. O melhor ganha-ganha existente é solucionar e aprender ao mesmo tempo. Valeu.