Отчасти это зависит от того, как вы занимаетесь парным программированием. В некоторых случаях драйвер пары пишет код, а второй член пары наблюдает и обсуждает детали проектирования и реализации системы. В другом примере парного программирования оба человека пишут код одновременно - один человек пишет реализованную функциональность, а другой активно разрабатывает и пишет тестовый код на уровне модуля и интеграции, снова обсуждая детали проектирования и реализации системы.
Независимо от типа парного программирования, он фактически служит непрерывным обзором кода . У вас есть два человека, которые следят за кодом, наблюдая за ошибками, прежде чем они попадут в более позднюю систему / приемочное тестирование или в поле. У вас также есть два человека, которые очень хорошо понимают определенную часть системы, чтобы служить в качестве избыточности, чтобы минимизировать ваши шинного фактора . Как раннее обнаружение дефектов, так и распространение знаний о системе в команде снижает стоимость построения системы.
Распространение знаний не ограничивается только техническими знаниями команды. В зависимости от того, кто является парой, она может позволить передавать информацию между более старшим сотрудником компании и новым членом о других вещах, которые выходят за рамки проекта - стиле кодирования, культуре компании, ожиданиях и так далее. Это также может позволить кому-то, кто более знаком с технологией или инструментом, делиться своими знаниями в этой технологии или инструменте в реальных прикладных условиях.
Как вы упомянули, это также помогает разработчикам сосредоточиться и потоке . В дополнение к потоку, многие люди реже прерывают работу нескольких людей над чем-то, чем одного работающего над чем-то. Если вы проходите мимо чьего-то стола и они работают в одиночку, но вам нужно поговорить с ним, вы можете постучать и поговорить с ним. Это менее вероятно, если вы видите двух или более людей, работающих совместно или участвующих в дискуссии - вы не будете их прерывать. Перерывы стоят времени, а тратить больше времени означает более высокие затраты. В интересах бизнеса максимизировать производительность сотрудников.
Однако есть некоторые проблемы, которые необходимо преодолеть, чтобы сделать парное программирование жизнеспособным. Подумайте о таких вещах, как столкновения личности или выбор пар, чтобы правильно распределить знания. Также учитывается, когда именно нужно вращать пары. Парное программирование, выполненное бессистемно, вероятно, не будет таким эффективным, как запланированное. В зависимости от состава вашей команды, это может быть неэффективно, чтобы пара людей вообще.