Задать вопрос Поделиться знаниями Редактировать страницу

Парное программирование / Погружение в чужую практику

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

В IT эта практика известна как "парное программирование" и является частью практик Экстремального программирования.

Проблемы, решаемые парным программированием

Эта практика может использоваться не только для обучения новичков, но и для разрушения стен непонимания между представителями разных подразделений. К примеру:

  • Додо Пицца периодически отправляет своих разработчиков в пиццерии, чтобы те осознали, как на практике применяется создаваемое ими ПО

  • Леруа Мерлен аналогично отправляет разработчиков работать на складах

  • Компания Флант отправляет своих devops-инженеров, создающих инфраструктуру, дежурить на обработке инцидентов во всех инцидентов, чтобы те получили обратную связь о созданной инфраструктуре

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

Парное программирование должно помочь для унификации подходов к решению задач.

Какова эффективность парного программирования? Существует возражение, что делать задачу, которую делает один человек, двум людям — это очень дорого с точки зрения затрат. Однако, с другой стороны, парное программирование — это ключ к инновациям и повышению эффективности.

Возможно внедрение парного программирования — это ключ для того, чтобы убрать другие, неэффективные практики. К примеру, если есть парное программирование, то можно не делать код-ревью.

Такие же, как и культурой обмена знаниями в целом

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

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

С чего начать внедрение парного программирования

Как научить людей парному программированию? Кажется, как будто не все способны сразу работать в паре, объяснять свои действия коллеге и проверять, что тот понимает происходящее. Должен быть человек, который в это дело верит и может вдохновить людей. Есть набор приёмов, которые влияют на результат, но похоже нигде этому не учат и это устно передаваемая штука.

Николай Рыжиков на AgileDays-2014 рассказывает о практиках, применяемых в программировании, в том числе — о парном программировании.

Как нужно формировать пары? Формировать их "навсегда" звучит неправильным. Формировать их на отдельные задачи — может породить сложности при планировании. Какие есть подходы?
Люди — разные. И логично предположить, что пары тоже могут формироваться разные по своему подходу: какая-то пара будет фонтанировать идеями, а какая-то — доводить всё до идеального состояния. Как учитывать психологию участников при формировании пар?

Лицензия Creative Commons | by Igor Tsupko, Lana Novikova, Rodion Nagornov & community