Minha equipe faz programação em pares desde o início, muito antes de eu trabalhar lá, como parte de uma loja no estilo de "programação extrema". A programação em pares é o estado padrão ; as pessoas só ficam solteiras se houver um número ímpar ou ocasionalmente para investigações, especialmente aquelas que envolvem mexer com equipamentos hostis e tentar fazê-lo funcionar.
"Junior / senior" não é o único caminho a percorrer. "Intermediário / Júnior" é útil; ajuda o sujeito de nível intermediário a sintetizar o conhecimento obtido, forçando-o a comunicá-lo a outra pessoa. Desafios "Intermediário / Intermediário": duas pessoas trabalham juntas para compartilhar seus conhecimentos, se comunicar e trabalhar como parte de uma equipe. E mesmo se você tiver dois caras realmente seniores, é provável que eles tenham áreas de especialização diferentes e possam apresentar abordagens diferentes. Os aspectos de compartilhamento de conhecimento não terminam quando alguém está vagamente "atualizado" em um projeto. Em vez disso, a programação em pares é o epítome de uma organização que aprende . Novas técnicas e melhores práticas se espalham rapidamente.
A programação em pares também ajuda a manter a qualidade do código (menos defeitos) e a sanidade do código (ele não apenas faz o que pretende, mas faz o que deveria ... idealmente sem diminuir o desempenho de várias semanas. buraco fazendo a coisa errada, ou duas coisas certas diferentes que entrarão em conflito descontroladamente). Ajuda os programadores a manter seu foco: aqui no coração do Vale do Silício, casa das 80 horas semanais de trabalho, podemos trabalhar apenas 40 horas por semana, porque estamos fazendo codificação intensa por oito horas por dia, mudando as coisas fora um com o outro. (Além disso, se você demorasse mais a programar em pares, provavelmente sairia. Ou pelo menos se esgotaria.) Isso é ótimo para o equilíbrio entre trabalho e vida pessoal e também ajuda a sua organização quando é importante ter uma resposta rápida (resposta de baixa latência, em particular).
Não é tudo, completamente, 100% de pêssegos e creme; Acho que a programação em pares é ocasionalmente um obstáculo para a minha aplicação de processos cerebrais intuitivos que são úteis em certos problemas. Mais recentemente, em uma tarefa de vazamento de memória, passei algum tempo com e sem pares; sem um, me senti mais livre para mexer e experimentar experimentos sem realmente saber exatamente como explicar o que estava fazendo a qualquer momento. Há também algumas vantagens em trabalhar com singleton, poder sair pela tangente e fazer certas refatorações selvagens (avaliadas na metodologia XP) por capricho.
Mas, ao todo, os benefícios superam os custos, e o emparelhamento funcionou espetacularmente para nós: desde o estágio de inicialização até a aquisição por uma empresa maior e nossa integração subseqüente. (Falando nisso, a programação em pares nos ajudou a manter uma continuidade da cultura através da expansão e apesar de um pouco de rotatividade).
(Desenvolvemos um dispositivo de software em Perl, preço de tabela entre US $ 4.000 e US $ 40.000.