Парное программирование: недостатки, которые предпочитают умалчивать

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

Те, кто предпочитает избегать этого подхода, говорят о том, что он замедляет работу, особенно в парах разработчиков с разным уровнем опыта. Они также говорят о снижении концентрации и трудностях работы на одном компьютере из-за разных подходов к работе у участников.

Есть несколько способов применения парного программирования

У ПП нет единого подхода для всех способов ведения дел, однако есть способы, упрощающие его реализацию.

Использование явного стиля ПП, такого как Navigator, Driver или Ping Pong, помогает поддерживать порядок и структурированность сессий.

Отсутствие клавиатуры и мыши для каждого члена пары приводит к тому, что один из них чувствует себя лишь наблюдателем, если не используется такой тип сессии, как Navigator/Driver.

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

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

Благодаря частым перерывам при использованием такой техники, как Pomodoro (выделение определенного количества времени для работы, после которого следует короткий перерыв), можно не только отдохнуть, но и повысить концентрацию.

Только парное программирование при выполнении «сложных» задач может привести к их упрощению.

Парное программирование требует наличия этикета

Одна из главных трудностей ПП заключается в том, что многие привыкли работать самостоятельно, не отвлекаясь на работу с другим человеком.

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

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

  • Члены пары должны выполнять работу с комфортной для обоих участников скоростью. Это означает, что действия одной половины пары должны сопровождаться объяснениями и пониманием со стороны другой половины.
  • Время, проведенной с мышью и клавиатурой, должно быть разделено поровну между участниками.
  • Необходимость сохранять спокойствие.
  • Эмпатия и вера в то, что коллега делает все возможное, используя свои навыки и опыт по максимуму.
  • Открытость по отношению не только к собственным идеям, но и к идеям коллеги.
  • Желание веселиться и обучаться.

Парное программирование — это нелегко

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

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

Необходимость поделиться своим ходом мыслей и изложить их в конкретных терминах, понятных другому человеку, — это сложный и напряженный процесс, похожий на экзамен.

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

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

Иными словами, переход к такому режиму работы будет непростым.

Преимущества парного программирования хорошо документированы и неоспоримы. Его недостатки гораздо менее задокументированы, однако не менее важны.

Несмотря на все преимущества парного программирования, порой возникает ощущение того, что они не стоят приложенных усилий. Однако, как и в случае с другими сложными задачами, понимание того, во что вы ввязываетесь, значительно облегчает процесс и помогает подготовиться к предстоящим трудностям и даже потенциально свыкнуться с ними.

Читайте также:


Перевод статьи Tylor Borgeson: What they don’t say about Pair Programming