Escolha uma Página
Programação por pares – Construindo comunicação eficiente em times de desenvolvimento.
04/25/2025

Por questões culturais e de senso comum, somos levados a entender a programação de software como uma atividade solitária. A figura do programador recluso e com pouco traquejo social tem sido muito propagada por filmes, séries e mídias pop em geral. Porém, o dia a dia de quem programa está longe de ser assim.
O cotidiano dos tech leaders e gestores de equipes de TI tem sido, em boa parte, manejar a comunicação eficaz dentro dos times. Quem consegue uma equipe com boa comunicação faz entregas mais consistentes, se protege mais rapidamente de problemas e consegue encaixar competências, tornando a equipe uma massa coesa. Este cenário é um objetivo que nem sempre é alcançado. Não são poucos os relatos de comunicação deficitária, preconceito entre os participantes do time por desnível evidente de habilidades técnicas, ou até mesmo a falta de costume em cooperar efetivamente em grupo. Julgo que isso poderia ser resolvido na base de formação do profissional.
Nesses últimos anos em sala de aula, ensinando disciplinas de computação, tem ficado claro para mim que minhas aulas atingem mais rapidamente seus objetivos quando aposto na construção das habilidades de comunicação e senso de comunidade dos alunos, muito mais do que na apresentação do conteúdo da disciplina em si. E estou convencido de que a Programação por Pares é uma ótima prática para alcançar esses objetivos.
Vou apresentar um relato de experiência que vivenciei ao aplicar a técnica de Programação por Pares em uma disciplina de Qualidade de Software. Relatarei, nas próximas linhas, o cenário que encontrei em uma das minhas últimas aulas utilizando a técnica, bem como a estratégia adotada e os resultados obtidos.


Cenário

As aulas são conduzidas em um laboratório com computadores desktop, com uma turma de aproximadamente 18 pessoas do curso de Ciência da Computação. Os alunos tinham conhecimentos desnivelados de programação: alguns já atuavam profissionalmente, enquanto outros estavam dando os primeiros passos na área.


Preparação

Uma aula antes da aplicação da Programação por Pares foi dedicada a uma atividade de nivelamento. É importante perceber que, para cada experiência, você pode encontrar um cenário diferente; aí entra a sensibilidade do professor para preparar bem os alunos para a atividade.
Nessa atividade niveladora em particular, revisitamos os conceitos de listas em Python, fizemos operações com listas, laços, condicionais, list comprehension e funções lambda. Dessa forma, no encontro seguinte haveria menos lacunas a preencher.
O material para esta aula está documentado neste link do GitHub:


Aplicação da técnica

A Programação por Pares consiste em dois programadores trabalhando juntos em uma única máquina, compartilhando o teclado e o mouse, e escrevendo código de forma colaborativa. Um programador atua como “motorista” (ou driver), escrevendo o código, enquanto o outro atua como “navegador” (ou observer), revisando o código em tempo real, dando sugestões e identificando potenciais erros. Os papéis são alternados regularmente.
Costumo dar um tempo de 7 a 10 minutos por rodada até que ocorra a troca de papéis. No dia a dia profissional, essa técnica em geral é aplicada por dois colegas que alternam entre si. Entretanto, na minha aula promovo um rodízio de duplas, para incentivar a integração entre todos os participantes. Assim, ao final de cada rodada, os navegadores mudam para a estação à direita, e os drivers para a estação à esquerda. Na nova estação, eles alternam os papéis: quem era driver passa a ser navegador e vice-versa.


Resultado

Nessa experiência em particular, foram realizadas oito rodadas com tempo variando de 7 a 10 minutos. Ao final, os participantes compartilharam suas impressões, destacando os pontos positivos e os desafios da atividade de programar em duplas.
As respostas foram diversas, entre aspectos positivos e pontos de estranhamento:

  • Dificuldade em continuar a atividade ao mudar de estação e se deparar com código feito por outra pessoa;
  • Duplas bem afinadas eram desfeitas, e uma nova relação precisava ser construída rapidamente;
  • Com as novas interações, habilidades foram adquiridas, assim como novas formas de abordar problemas;
  • A comunicação nem sempre era eficaz em algumas duplas;
  • O receio inicial de “não saber programar direito” foi superado com o apoio do navegador.

Ao final, desafiei os alunos a aplicar a técnica em projetos pessoais, utilizando ferramentas de teletrabalho com chamada de vídeo e compartilhamento de telas. Julgo que isso os prepara para compor equipes de desenvolvimento de software com mais confiança para enfrentar os desafios do dia a dia.

Vamos continuar essa conversa lá nas minhas redes sociais!

Outras postagens

Gêneros dos Jogos digitais

De Tenis For Two até Cyberpunk 2077 surgiram inúmeros tipos de gêneros de jogos com vários subgêneros. Muitos jogos passaram a mesclar diversos dos gêneros elencados nesse artigo como forma de incrementar a experiência do jogador. Um gênero de game é utilizado para...