Частково це залежить від того, як ви займаєтесь парним програмуванням. У деяких випадках драйвер пари пише код, а другий член пари спостерігає та обговорює деталі проектування та впровадження системи. Інший екземпляр парного програмування передбачає одночасне написання коду обома людьми - одна людина записує реалізовану функціональність, а інша активно розробляє та пише тестовий код на рівні одиниці та інтеграції, знову обговорюючи деталі проектування та впровадження системи.
Незалежно від типу парного програмування, воно ефективно служить безперервним переглядом коду . Ви маєте на увазі код двох людей, спостерігаючи за помилками, перш ніж вони втечуть у більш пізнє середовище тестування / прийняття тестування або в поле. У вас також є двоє людей, які дуже добре розуміють певну частину системи, щоб вони послужили надмірністю, щоб мінімізувати ваш фактор шини . Раннє виявлення дефектів та поширення системних знань навколо команди зменшують витрати на побудову системи.
Поширення знань не обмежується лише технічними знаннями колективу. Залежно від того, хто така пара, вона може дозволити передачі інформації між старшим членом компанії до нового члена про інші речі, які виходять за рамки проекту - стиль кодування, культура компанії, очікування тощо. Це також може дозволити тому, хто більше знайомий з технологією чи інструментом, поділитися своїми знаннями з цієї технології чи інструменту в реальному світі.
Як ви вже згадували, це також допомагає тримати розробників зосередженими та потоковими . Крім потоку, багато людей мають меншу ймовірність перервати декількох людей, що працюють над чимось, ніж окремі особи, які працюють над чимось. Якщо ви проходите за чиїмсь столом, і вони працюють поодинці, але вам потрібно поговорити з ними, ви можете стукати і поговорити з ними. Це менш ймовірно, якщо ви бачите двох або більше людей, які спільно працюють або ведуть дискусію - ви не перебиватимете їх. Перерви витрачають час, а витрачати більше часу означає більші витрати. В інтересах бізнесу - максимізація продуктивності працівників.
Однак є деякі проблеми, які необхідно подолати, щоб зробити програмування пар життєздатним. Розгляньте такі речі, як зіткнення особистості або вибір пар для правильного розподілу знань. Також є розгляд того, коли саме потрібно обертати пари. Парне програмування, зроблене випадково, ймовірно, не буде ефективним, як заплановане. Залежно від складу вашої команди, спарювання людей може взагалі не ефективно.