Попробовать бесплатно
AgileПроцессКомандыКачество

Парное программирование (Pair Programming)

Двое разработчиков пишут один код на одном рабочем месте: один набирает, второй следит за направлением, роли регулярно меняются.

КРАТКО
В паре один человек держит клавиатуру и думает о ближайших строках, второй смотрит на задачу целиком и ловит то, что первый пропустил. Роли меняют каждые десять-двадцать минут. Практика пришла из экстремального программирования, где заменяет отдельный обзор кода: проверка идёт непрерывно. Классическое измерение Лори Уильямс с соавторами в статье «Strengthening the Case for Pair Programming» 2000 года дало около пятнадцати процентов лишнего времени и примерно столько же снижения числа дефектов.
СИНОНИМЫ:парное программированиеработа в пареpair programmingпинг-понг парноепрограммирование вдвоём

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

Роли

  • За клавиатурой: пишет код и проговаривает вслух, что делает.
  • Штурман: держит в голове задачу целиком, замечает ошибки и предлагает следующий шаг.

Роли меняются по таймеру или после каждого пройденного теста. Пара, где один молча смотрит в телефон, пользы не приносит и портит репутацию практике.

Что показали измерения

Уильямс с соавторами получили около пятнадцати процентов роста трудозатрат при заметном снижении числа дефектов. Более поздние обзоры дали разброс: выигрыш зависит от сложности задачи и опыта участников. На простой работе пара почти не окупается, на сложной и незнакомой окупается быстро.

Разновидности

Пинг-понг: один пишет падающий тест, второй доводит код до зелёного, потом меняются. Работа за одним экраном командой из трёх и более человек относится к тому же семейству и применяется на самых запутанных участках.

КОГДА ПРИМЕНЯТЬ
  • Сложный или незнакомый участок системы
  • Ввод нового человека в проект
  • Знание держится в одной голове, и это создаёт риск
  • Критичный код: платежи, права доступа, расчёты
КОГДА НЕ СТОИТ
  • Рутина, где решение очевидно с первой минуты
  • Исследование, требующее долгого чтения документации в тишине
  • Часовые пояса расходятся настолько, что общего окна почти нет
ПРИМЕР

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

КАК ИСПОЛЬЗОВАТЬ В SHTAB

Ограничивайте сессию двумя-тремя часами. Парная работа плотнее одиночной и к концу дня перестаёт давать выигрыш. Заранее договоритесь, кто начинает за клавиатурой и когда меняетесь, иначе роль штурмана незаметно превращается в наблюдение. Если пара разбирала сложное решение, вынесите вывод в базу знаний: через месяц его будут выяснять заново.

Попробовать бесплатно

Вопросы про «Парное программирование (Pair Programming)»

Измерения этого не подтверждают. В работе Лори Уильямс с соавторами 2000 года пары тратили примерно на пятнадцать процентов больше времени, чем два разработчика по отдельности, и допускали ощутимо меньше дефектов. Разброс в более поздних исследованиях большой и зависит от сложности задачи.

Применяйте термины на практике

База знаний, задачи и цели — в одном сервисе. Бесплатно — без лимита по числу людей.