Введение

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

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

Недавно я участвовал в буткемпе по программированию, и мне пришлось принять участие в нескольких задачах по парному программированию. Я был в паре с другим буткемпером, которого я не знал. Мне не хватало уверенности в своих силах, и поначалу я не хотел заниматься парным программированием. Я думал следующее:

  • Я не хочу, чтобы они видели то, чего я не знаю, или плохо обо мне думают (парное программирование заставляет вас чувствовать себя уязвимым).
  • Я не смогу решить проблему, если за мной наблюдают.

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

Что ж, получается, после первых неудобных 5-10 минут я получил массу удовольствия от парного программирования. Я встретил действительно замечательных людей, многому научился у них и на своем опыте — они думали о вещах, о которых я не думал в тот момент, и наоборот. Мы действительно попали в колею.

Что такое парное программирование?

Парное программирование — это метод, используемый в разработке программного обеспечения, при котором два программиста вместе работают над одной задачей на одном компьютере. Технику также можно использовать виртуально с помощью видеоконференций (Zoom, Google Meet и т. д.), совместного использования экрана и Visual Studio Live Share.

Каждый человек по очереди становится водителем и штурманом.

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

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

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

Планирование сеанса парного программирования

  • Выберите конкретную задачу или цель для сеанса, например написание кода для конкретного требования к проекту или решение одной задачи кодирования.
  • Перед сеансом убедитесь, что требования четко определены. Вы не хотите просить клиента или менеджера проекта посреди сеанса разъяснений.
  • Приходите подготовленными. Прочитайте задание заранее и узнайте, над чем вы будете работать. Уважайте время другого человека.
  • Устраните все возможные отвлекающие факторы. Перенесите встречи, настройте каналы чата на режим «Не беспокоить» и создайте тихое место для работы.
  • Установите определенное время начала и окончания и придерживайтесь его. Постарайтесь ограничить занятие 2 часами и планируйте перерывы. Вы можете сделать 10-минутный перерыв в середине или попробовать использовать Технику помидора (25 минут + 5 минут перерыва).
  • Заранее решите, как вы будете давать и получать обратную связь. Всякий раз, когда вы даете кому-то обратную связь, есть вероятность, что другой человек воспримет это на свой счет и обидится. Важно сохранять позитивный настрой, сосредоточиться на улучшении кода и избегать критики партнера по паре. Сосредоточьтесь на процессе.
  • Ограничьте сеанс до 2 человек. Однажды я попробовал это с тремя людьми и обнаружил, что это работает не так хорошо. «Трое — это толпа» здесь определенно применимо.

Рекомендации по максимально эффективному использованию парного программирования:

  • Составьте заранее определенную задачу, над которой вы будете работать вместе.
  • Установите ограничение по времени и придерживайтесь его (я предлагаю не более 2-3 часов за раз).
  • Чаще меняйтесь ролями и вовлекайте обоих людей.
  • Навигатор не должен писать никакого кода. Никаких задних водителей!
  • Водитель должен рассказывать о своем мыслительном процессе во время вождения (писать код).
  • Штурману не следует прерывать поток машинистов. Подождите, пока они закончат, чтобы оставить отзыв. Никакого микроменеджмента!
  • Сохраняйте непредвзятость, задавайте вопросы и будьте уважительны.

Плюсы парного программирования

У парного программирования очень много преимуществ. Вот некоторые из них:

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

Минусы парного программирования

  • Это может быть непрактично в течение длительных периодов времени. Нам всем нужна автономия в течение рабочего дня и время для выполнения других задач, таких как встречи, электронная почта, исследования и т. д.
  • В зависимости от вашего характера, работа в паре также может истощить вашу энергию и не является устойчивой. Вам нужно будет найти правильный баланс.
  • Динамика мощности — вы можете быть в паре со старшим программистом, а вы — младшим программистом. Возможно, вы работаете в паре с сильной личностью, которая может быть закрыта для вашей точки зрения, доминируя в качестве водителя. Вот несколько примеров динамики потенциальной силы, с которой вы можете столкнуться.
  • Работать с другим человеком может быть сложно. Требуется время, чтобы найти свой ритм и привыкнуть друг к другу.

Заключение

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

Рекомендации

Парное программирование. (2023, 27 января). В Википедии. https://en.wikipedia.org/wiki/Парное_программирование

Девопедия. 2022. Парное программирование. Версия 3, 15 февраля. По состоянию на 22 марта 2023 г. https://devopedia.org/pair-programming

Бёкелер, Биргитта и Нина Сиссеггер. 2020. О парном программировании. 15 января. По состоянию на 22 марта 2023 г.
https://martinfowler.com/articles/on-pair-programming.html

Команда CodeAcademy (2021, 24 сентября). Что такое парное программирование? Codecademy.com. Получено 23 марта 2023 г. с https://www.codecademy.com/resources/blog/what-is-pair-programming/.

[Кодр.тв]. (2015, 8 июля). Парное программирование: 7 навыков высокоэффективных программистов [видео]. Youtube.com.
https://www.youtube.com/watch?v=5ySLQ5_cQ34&ab_channel=codr.tv