Введение

Парное программирование — это техника разработки программного обеспечения, в которой два программиста совместно работают за одним рабочим местом. Один, называемый водителем, пишет код, а другой, наблюдатель или навигатор, просматривает каждую строку кода по мере её написания. Программисты часто меняются ролями. Во время просмотра наблюдатель также обдумывает "стратегическое" направление работы, предлагая идеи по улучшению и прогнозируя возможные будущие проблемы. Это позволяет водителю полностью сосредоточиться на "тактических" аспектах выполнения текущей задачи, используя наблюдателя как страховку и помощника.

Экономика

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

Удовлетворенность

В онлайн-опросе 2000 парных программистов 96% респондентов заявили, что получают больше удовольствия от работы в паре, чем при индивидуальном программировании. Более того, 95% отметили, что парное программирование повышает их уверенность в качестве своей работы. Однако, поскольку опрос проводился среди программистов, добровольно выбравших парную работу, он не учитывал мнение тех, кто был вынужден программировать в паре.

Учиться

Знания постоянно обмениваются между программистами, работающими в парах, будь то в индустрии или в учебной аудитории. Многие источники указывают на то, что студенты демонстрируют большую уверенность при программировании в парах. В случае "свободного парного программирования" каждый программист взаимодействует и работает со всеми остальными членами команды, а не только с одним партнером, что способствует распространению знаний о системе по всей команде. Хотя пара программистов может выполнить задачу быстрее, чем программист, работающий в одиночку, общее количество человеко-часов при этом увеличивается. Парное программирование может быть полезно для достижения высокого качества и корректности при решении сложных задач, но при этом значительно увеличивает трудозатраты (стоимость) разработки. Оно может сократить время разработки кода, но также несет риск снижения качества программы. Исследование программистов, использующих инструменты помощи на основе ИИ, такие как GitHub Copilot, показало, что, хотя некоторые программисты воспринимают помощь ИИ как нечто похожее на парное программирование, на практике использование таких инструментов существенно отличается с точки зрения опыта программирования, поскольку человеку приходится постоянно переключаться между ролями "водителя" и "навигатора".