Em parte, depende de como você está fazendo a programação em pares. Em alguns casos, o driver do par está escrevendo código, enquanto o segundo membro do par está observando e discutindo os detalhes de design e implementação do sistema. Outra instância da programação em pares envolve as duas pessoas escrevendo código simultaneamente - uma pessoa está escrevendo a funcionalidade implementada e a outra está desenvolvendo e escrevendo ativamente o código de teste no nível da unidade e da integração, discutindo novamente os detalhes de design e implementação do sistema.
Independentemente do tipo de programação em pares, ele efetivamente serve como uma revisão contínua de código . Você tem o olhar de duas pessoas no código, observando os erros antes que eles escapem para um ambiente posterior de teste de sistema / aceitação ou para o campo. Você também tem duas pessoas que entendem muito bem uma parte específica do sistema, para servir como redundância para minimizar o fator de barramento . A detecção precoce de defeitos e a disseminação do conhecimento do sistema pela equipe reduzem o custo de construção de um sistema.
A difusão do conhecimento também não se limita apenas ao conhecimento técnico da equipe. Dependendo de quem é o par, ele pode permitir que as informações fluam entre um membro mais sênior da empresa para um novo membro sobre outras coisas que transcendem o projeto - estilo de codificação, cultura da empresa, expectativas e assim por diante. Também pode permitir que alguém mais familiarizado com uma tecnologia ou ferramenta compartilhe seu conhecimento nessa tecnologia ou ferramenta em um ambiente aplicado no mundo real.
Como você mencionou, também ajuda a manter os desenvolvedores focados e no fluxo . Além do fluxo, muitos indivíduos têm menos probabilidade de interromper várias pessoas trabalhando em algo do que um único indivíduo trabalhando em algo. Se você passar pela mesa de alguém e ele estiver trabalhando sozinho, mas precisar conversar com ele, poderá bater e conversar com ele. Isso é menos provável se você vir duas ou mais pessoas trabalhando em conjunto ou tendo uma discussão - você não as interromperá. Interrupções custam tempo, e gastar mais tempo significa custos mais altos. É do interesse dos negócios maximizar a produtividade dos funcionários.
No entanto, existem alguns desafios que devem ser superados para tornar a programação em pares viável. Considere coisas como conflitos de personalidade ou escolha dos pares para distribuir adequadamente o conhecimento. Também há consideração de quando exatamente girar pares. A programação em pares feita aleatoriamente provavelmente não será eficaz como a planejada. Dependendo da composição da sua equipe, pode não ser eficaz emparelhar as pessoas.