Блог SkillsCup.com

Парное программирование

Определение термина

Парное программирование — подход к работе: код программы по одной функции/фиче/задаче создают сразу два программиста за одним ПК.
  • Один разработчик — ведущий, набирает код.
  • Второй — думает о функции в целом, следит за набираемым текстом.
Каждые ~полчаса они меняются ролями.
Составы пар меняются, задачи меняются.

Является одной их практик Экстремального программирования (Pair Programming @ ExtremeProgramming.com), которое является одним из Agile-подходов, которые мы обсуждаем на курсе "Основы Agile и Scrum".

Плюсы/выгоды подхода

Кажется контр-интуитивным, но за единицу времени 2 программиста создадут одинаковое количество кода,
  • как работая каждый на своём ПК,
  • так и работая вместе на одном ПК. Однако во втором случае качество кода будет выше, что позитивным снежным комом повышает качество всего продукта, тем самым экономя издержки на исправления.

  1. Повышается дисциплина. Меньше отвлекаются, больше сфокусированы, плотнее результативность.
  2. Непрерывная проверка кода. Ошибки обнаруживаются сразу же, как только появились — экономит и время/деньги.
  3. Повышается качество программного кода и софта в целом. Один пишет, другой следит за корректностью, многие ошибки устраняются сразу же, ещё до любого тестирования.
  4. Коллективное владение кодом. Коллективное владение означает, что каждый несет ответственность за весь код, и нет проявлений вида «Эту функцию писал ты, вот давай ты и доработаешь дальше / исправишь дефект» или «Это я делал, не лезьте туда — испортите.» Каждый вправе вносить изменения в любой кусок кода. Это упрощает взаимодействие и ускоряет разработку.
  5. Обратная связь друг другу сразу же в контексте.
  6. Обмен опытом, обучение (другие способы обучения URL на VC.ru). Каждый знает что-то, чего не знают другие.
  7. Тесное командное взаимодействие, сплоченность.
  8. Экономически выгоднее.

Согласно подходу Extreme Programming, парное программирование — НЕ менторинг. Даже при заметной разнице в квалификации работа и общение должны проходить на равных.


Agile-подходы, включая Экстремальное программирование, мы обсуждаем на курсе "Основы Agile и Scrum".

Ещё почитать в сети:
  • https://www.leanovate.de/three-modes-for-an-enhanced-pair-programming-experience/
  • https://www.verypossible.com/insights/the-pros-and-cons-of-pair-programming
Agile