Pular para o conteúdo
Engenharia e DevOps

O que é Pair Programming?

Em português: Programação em par

Programação em par é colaboração simultânea de duas pessoas no mesmo problema de código, com decisões e revisão contínuas.

Pair Programming é uma prática de desenvolvimento em que duas pessoas trabalham juntas, em tempo real, no mesmo problema de código. Uma pode conduzir o teclado enquanto a outra observa e orienta; os papéis mudam conforme a tarefa. A prática busca melhorar compreensão compartilhada, feedback e qualidade das decisões, sem dispensar testes ou outras revisões necessárias.

Origem

A programação em par se tornou uma prática conhecida de Extreme Programming, associada ao trabalho de Kent Beck e outros participantes do movimento. Martin Fowler descreve a colaboração de duas pessoas no mesmo código e ressalta que o trabalho principal é compreender e decidir, não apenas digitar. Há formatos diferentes de pareamento; driver e navigator são papéis úteis, mas não uma regra imutável para toda sessão.

Fonte primária: Pair Programming

Na prática

Pair Programming, ou programação em par, reúne duas pessoas para trabalhar no mesmo problema de programação em tempo real. Ambas participam das decisões, embora normalmente uma opere o teclado e a outra observe, questione, pesquise e pense nos próximos passos. A colaboração pode ocorrer na mesma estação ou por compartilhamento remoto. O objetivo não é duplicar digitação: programação envolve compreender o sistema, escolher uma abordagem, testar e revisar consequências.

O que acontece quando falta

Sem colaboração próxima em problemas difíceis, conhecimento pode ficar concentrado e decisões de design podem ser revisadas tarde. Isso não significa que todo time precise parear continuamente. Revisões rápidas, documentação e trabalho coletivo também ajudam. O pareamento é uma opção especialmente útil quando feedback imediato e entendimento conjunto podem reduzir risco ou acelerar aprendizagem.

Como funciona a programação em par

Pair Programming, ou programação em par, reúne duas pessoas para trabalhar no mesmo problema de programação em tempo real. Ambas participam das decisões, embora normalmente uma opere o teclado e a outra observe, questione, pesquise e pense nos próximos passos. A colaboração pode ocorrer na mesma estação ou por compartilhamento remoto. O objetivo não é duplicar digitação: programação envolve compreender o sistema, escolher uma abordagem, testar e revisar consequências.

Driver e navigator. O driver conduz a implementação imediata. O navigator mantém atenção ao problema maior, procura inconsistências e sugere caminhos. Esses nomes descrevem papéis momentâneos, não hierarquia. Se uma pessoa dita cada linha e a outra apenas obedece, o par perde a capacidade de pensar junto. Troque papéis e ajuste o modo de colaboração à experiência e à tarefa. Às vezes quem navega pesquisa documentação ou ajuda a formular um teste antes de escrever código.

Preparação. Comece com uma meta pequena e compartilhada: corrigir um defeito, acrescentar um teste ou compreender um módulo. Acorde o resultado esperado, critérios de qualidade, tempo disponível e quando parar para reavaliar. Um item vago faz o par discutir escopo enquanto deveria aprender sobre a solução. Ter ferramentas, acesso e ambiente funcionando evita transformar a sessão em espera passiva.

Ritmo. Trabalhe em passos curtos. Uma pessoa propõe uma mudança; ambas verificam o que o código e os testes mostram. Discussões difíceis podem pedir pausa para desenhar alternativas. Revisão contínua não significa interromper a cada caractere. O navigator pode deixar a ideia ganhar forma e então perguntar sobre um caso de borda. A troca de papéis deve manter atenção e transferência de entendimento, sem impor um cronômetro rígido a todo par.

Qualidade e feedback. O par pode notar um equívoco enquanto a decisão ainda é barata de mudar. TDD pode dar uma sequência de testes e implementação, mas não é requisito para parear. Integração frequente e código compartilhado permitem que outras pessoas aprendam depois. Pair Programming também não elimina necessidade de testes automatizados, revisão de segurança ou validação com usuários. Duas pessoas podem concordar com a mesma suposição errada.

Aprendizado. Um par com experiências diferentes pode espalhar conhecimento de domínio, arquitetura e ferramentas. A pessoa mais experiente precisa explicar raciocínio, não apenas assumir o teclado. A menos experiente precisa ter espaço para propor alternativas e experimentar. Parear durante onboarding pode reduzir dependência de um único especialista. Rotacionar parceiros ao longo do tempo ajuda a distribuir conhecimento, respeitando continuidade e confiança.

Trabalho remoto. Áudio claro, compartilhamento de tela, editor colaborativo e capacidade de controlar o ambiente diminuem fricção. Uma pessoa olhando uma transmissão sem conseguir participar não equivale a um par ativo. Combine pausas, turnos de fala e como pedir mudança de direção. Fadiga de tela e diferenças de conexão pedem sessões mais curtas ou adaptação. O resultado deve ser avaliado pela colaboração e pelo código, não pela presença simultânea em chamada.

Quando usar. Tarefas incertas, sensíveis, de aprendizado ou que atravessam partes pouco conhecidas do sistema podem se beneficiar de duas perspectivas. Uma investigação curta em par pode economizar retrabalho posterior. Trabalho repetitivo de baixo risco pode render melhor de outra forma, desde que o time mantenha qualidade e compartilhamento de conhecimento. A escolha é contextual, não uma prova de maturidade. Faça experimentos com tipos de tarefa e observe custo total, defeitos e compreensão compartilhada.

Conflitos produtivos. Discordar de uma solução é esperado. Explique critério, hipótese e risco em vez de defender preferência pessoal. Se a discussão se prolonga, execute um experimento reversível ou peça uma terceira opinião. Segurança psicológica importa: a pessoa deve poder dizer “não entendi” ou “acho que há um erro” sem punição. Uma sessão em que uma voz domina gera silêncio, mesmo quando duas pessoas estão presentes.

Custos e limites. A disponibilidade simultânea de duas pessoas custa capacidade aparente. Compare esse custo com retrabalho, filas de revisão, defeitos e tempo de aprendizagem; contar apenas linhas por pessoa é insuficiente. Pair Programming pode ser cansativo e nem todo dia pede pareamento contínuo. Use pausas e momentos individuais para pesquisa e reflexão. Cuidado para não exigir exposição constante de alguém que precisa de acomodação ou privacidade em uma tarefa.

Depois da sessão. Verifique testes, legibilidade e o que ficou pendente. Registre decisões de arquitetura ou dúvidas que o restante do time precisa conhecer. Se a sessão não avançou, investigue se faltava contexto, havia escopo grande ou a combinação de pessoas precisava de apoio. Uma retrospectiva curta transforma dificuldade de parear em melhoria de processo, em vez de concluir que a prática inteira falhou.

Exemplo de correção em par

Exemplo hipotético: uma equipe mantém um serviço de cobrança com um defeito intermitente. Uma pessoa conhece as regras de cobrança e outra domina a observabilidade do sistema. Trabalhando separadas, cada uma consegue investigar apenas uma parte. Em par, reproduzem o problema, criam um teste para o caso e identificam uma condição de concorrência. O driver escreve o teste; o navigator verifica a regra e questiona como o serviço reage a nova tentativa. Depois trocam os papéis para implementar e revisar a correção.

Antes, a equipe estimava seis horas de investigação individual, mais uma fila de revisão de um dia. Nesta situação hipotética, duas pessoas trabalham juntas por três horas, concluem teste e correção e pedem uma revisão adicional por ser uma área crítica. São seis horas de esforço combinado, não três, e o resultado não prova que parear sempre economiza tempo. A diferença é que o conhecimento e as decisões surgem compartilhados e uma possível falha de regra foi detectada antes da publicação.

Após a entrega, a equipe observa por duas semanas se o erro reaparece e registra os cenários testados. Se a correção falhar, ambas conseguem retomar a investigação. O exemplo mostra por que comparar apenas tempo de teclado oculta espera, transferência de contexto e risco; não oferece um percentual universal de produtividade.

Como começar uma sessão de Pair Programming

  1. Escolha a tarefa

    Prefira um problema com objetivo e limites claros para a sessão.

  2. Combine a colaboração

    Defina ferramentas, papéis iniciais e como ambos poderão participar.

  3. Trabalhe em passos curtos

    Escreva, teste e converse sobre decisões e casos de borda.

  4. Troque papéis

    Permita que ambas as pessoas operem e expliquem seu raciocínio.

  5. Faça pausas

    Reavalie energia, escopo e necessidade de pesquisa individual.

  6. Revise o resultado

    Verifique testes, decisões pendentes e conhecimento a compartilhar com o time.

Erros comuns no pareamento

  • Deixar uma pessoa apenas assistir. Participação precisa influenciar decisões.
  • Transformar o driver em digitador. Ambos devem compreender a solução.
  • Parear sem objetivo. Escopo confuso consome a sessão.
  • Tratar pareamento como revisão suficiente. Áreas críticas podem exigir outros controles.
  • Impor a prática em toda tarefa. Ajuste ao risco, aprendizado e energia.
  • Ignorar fadiga e conflito. Pausas e conversa honesta sustentam colaboração.

Visão K21

O que a gente aprendeu na prática sobre programação em par

Carlos Felippe Cardoso, em Técnicas de facilitação para programação em par, relata frustrações frequentes e recomenda olhar o contexto do time. Ele observa que parear não precisa virar dogma para tarefas mecânicas e descreve técnicas para aumentar a participação de quem está fora do teclado. A gente usa essa ideia para ajustar o formato da sessão ao trabalho e conversar sobre o que funcionou, em vez de medir adesão a uma regra fixa.

Baseado nos posts: Técnicas de facilitação para programação em par

Para se aprofundar

No blog da K21

Fontes primárias

Termos relacionados

Perguntas frequentes

O que é Pair Programming?

É uma prática em que duas pessoas desenvolvem o mesmo código juntas, discutindo a abordagem enquanto trabalham. Costuma haver um driver no teclado e um navigator atento ao contexto e aos riscos, com alternância de papéis. O objetivo é compartilhar raciocínio e obter feedback imediato, não simplesmente colocar duas pessoas diante de um computador. Pode ocorrer presencialmente ou a distância.

Pair Programming sempre reduz a velocidade?

Depende da tarefa e da medida usada. Duas pessoas na mesma sessão aumentam esforço simultâneo, mas podem diminuir espera por revisão, retrabalho e tempo para resolver uma dificuldade. Não há garantia de ganho em toda atividade. Compare ciclo completo, qualidade e aprendizado, e faça experimentos locais. Trabalho mecânico de baixo risco pode não justificar pareamento contínuo.

Qual é a diferença entre driver e navigator?

O driver conduz a edição e execução imediata do código. O navigator observa a direção, questiona suposições, pensa em testes e pode pesquisar informação. Ambos devem decidir e aprender. Os papéis podem se misturar e trocar durante a sessão; não são níveis de senioridade. Quando uma pessoa apenas dita comandos e a outra apenas digita, vale ajustar a dinâmica.

Programação em par substitui code review?

Ela oferece revisão enquanto a solução é construída, mas não torna automaticamente desnecessários testes, análise de segurança ou uma revisão independente exigida pelo contexto. Duas pessoas podem compartilhar um equívoco. Defina quais controles são necessários conforme risco e política do time. Em muitos casos, o par reduz comentários tardios e melhora a qualidade da revisão posterior.

Como parear remotamente?

Use áudio estável, tela ou editor compartilhado e um jeito simples de alternar controle. Comece com objetivo e pausas combinados. Verifique frequentemente se a pessoa sem teclado consegue acompanhar e influenciar decisões. Sessões remotas longas podem cansar mais; divida o trabalho ou reserve momentos individuais para pesquisa. Avalie a colaboração pelo resultado e pela compreensão mútua.

Curso K21 recomendado

Certified ScrumMaster® (CSM)

Scrum Alliance · 16 horas ao vivo

Ver curso
Adicione como fonte preferencial no Google