Парное программирование — это своеобразный стиль программирования, при котором 2 программиста совместно работают за одним компьютером над одним проектом и над один кодом. При этом не будет такой ситуации, где один программист «присматривает» за другим, потому что эта работа полностью совместная и равноправная.
В классическом парном программировании каждому из программистов выделена своя роль:
-
Первый — драйвер или водитель. Его роль — работать за клавиатурой и непосредственно вводить код, он акцентирует свое внимание на мелких или синтаксических ошибках.
-
Второй — навигатор или штурман. Его роль — следить за глобальными ошибками, продумывать архитектуру, планировать последовательность кодирования в стратегическом масштабе.
Идея такого разделения ролей сводится к простому определению — нужно получить разный взгляд на конкретную разработку. Подразумевается, что драйвер думает тактически и обращает внимание на мелкие детали, которые касаются строк кода, пишущихся в конкретный момент времени. А навигатор — это стратег, который смотрит на разработку «свысока» и наблюдает общую картину.
Парное программирование
Парное программирование своим подходом дает ряд преимуществ перед одиночным программированием:
-
Большинство ошибок в программе выявляются на фазе программирования, а не тестирования и тем более не на фазе релиза программы.
-
Из первого пункта следует, что количество конечных ошибок намного меньше, чем при одиночном программировании.
-
Код получается короче и красивее, при этом не теряется его функциональность.
-
При командном подходе все проблемы решаются быстрее.
-
Один и тот же элемент программы понимают несколько членов команды, соответственно, теряется зависимость от конкретного программиста.
-
Улучшается коммуникация между членами команды.
-
Уменьшено воздействие стресса на программистов из-за возникающих проблем.
-
Ускоряется разработка программы.
-
Есть возможность быстро обучить начинающего программиста.
Что нужно, чтобы парное программирование давало хороший результат?
Чтобы парное программирование было результативным, при его организации нужно следовать определенным рекомендациям:
-
Программирование парами должно поддерживать стандарты кодирования. Это исключит споры о стиле кодирования между членами пар и членами команд. Поэтому будут отсутствовать разногласия, а само программирование будет стандартизировано.
-
В парах не должно быть наблюдателя. Парное программирование — это совместное функционирование двух равноправных программистов, поэтому не должно быть так, чтобы один разработчик «следил» за действиями другого. Должен быть полноценный тандем.
-
Не все программные задачи нужно выполнять в парах. На более простых участках кода не нужно привлекать парное программирование, потому что там справится и одиночный разработчик.
-
Пары должны меняться. При таком подходе каждый разработчик, участвующий в команде, будет знаком с разными частями общей программы. Плюс замена партнеров пар стимулирует коммуникацию между всеми членами команды разработчиков.
-
В парах должны быть разработчики, близкие по «духу». Особенно нужно обратить внимание на то, чтобы совпадал рабочий темп, чтобы одному программисту не приходилось постоянно «догонять» напарника, — от этого ухудшится качество кода.
-
Удобное расположение компьютера. В паре экран должны видеть оба программиста, а в случаях, когда нужно передать клавиатуру или мышь напарнику, не должно возникать с этим проблем, тем более напарники не должны пересаживаться с места на место.
-
Следите за взаимоотношениями в парах. Если разработчики не нравятся друг другу, то не стоит объединять их в пары.
-
Опытные пары. Старайтесь изначально формировать пары таким образом, чтобы хотя бы один из разработчиков ранее уже работал в парном программировании.
Заключение
Парное программирование — это одна из методик экстремального программирования, которая «выталкивает» одиночных разработчиков из зоны комфорта. Поэтому при внедрении парного программирования нужно быть готовым к «сопротивлению» некоторых членов команды. Со временем это «сопротивление» спадет, как только программисты осознают все преимущества такого подхода.
Парное программирование в своей основе содержит не только профессиональные навыки программистов, но и их soft skills, а в частности:
-
умение работать в команде,
-
находить общий язык с другими людьми,
-
умение бесконфликтного общения.
Эти навыки важны, потому что при парном программировании очень часто будут возникать недопонимания между партнерами в каких-нибудь мелочах. Умение выходить из конфликтов поможет сохранить и улучшить взаимоотношения в парах разработчиков. Плюс нужно изначально донести до всех разработчиков, что при парном программировании главное — соблюдать равноправие и свободу мысли каждого отдельного программиста.