Парное программирование – вид так называемого экстремального программирования, которое относится к методологии гибкой разработки Agile.
У этого метода есть как плюсы, так и минусы.
Плюсы:
- как правило, в этом случае не требуется проводить code review;
- даже самый опытный разработчик не может знать всего. Наличие двух программистов помогает быстрее и эффективнее решать задачи;
- уменьшается количество ошибок. Кроме того, они чаще всего могут быть обнаружены именно в процессе работы;
- разработчики лучше концентрируются и меньше отвлекаются на посторонние дела. Этот пункт можно также отнести и к минусам: постоянные перерывы все же необходимы, поэтому в случае парного программирования рекомендуется делать паузы в 10-20 минут каждые 40-60 минут;
- разработчики знают бОльшую часть кода, чем если бы они писали только свою часть. В этом случае они смогут более эффективно вносить изменения в случае надобности;
- если нужно сделать слияние двух фрагментов кода, ПП быстрее и эффективнее, чем если бы один разработчик сначала писал код, а потом отправлял его на отправку коллеге, попутно давая объяснения;
- разработчики учатся коллективно решать проблемы, обсуждать вопросы, находить компромисс.
Минусы:
- не все хотят работать в паре. Кому-то психологически удобнее работать одному, кто-то может быть недоволен партнером. Кроме того, код каждого разработчика индивидуален в той или иной степени;
- многие руководители могут посчитать, что это невыгодно – сажать за одно рабочее место двух человек для выполнения одной задачи. Стоимость разработки может возрасти, однако это коменсируется еще одним плюсом – улучшением внутренней архитектуры и меньшим количеством ошибок. В 1999 году было даже проведено исследование на тему временных затрат. Согласно эксперименту, затраченное время выросло на 15%, но при этом ошибок в коде было на 15% меньше. Однако не стоит забывать, что исправление ошибок еще на стадии разработки экономит большое количество времени на поддержке;
- необходимо согласовывать график разработчиков;
- человеческий фактор. Для ПП необходимо иметь терпение и желание работать в паре. Если один из участников будет просто сидеть молча и смотреть, как второй пишет код, или если один из программистов станет продавливать свое мнение, не прислушиваясь к коллеге, то такой вариант разработки не принесет ни удовольствия, ни эффективности.
Виды ПП
Существует несколько стилей парного программирования:- ведущий-ведомый. В этом случае на втором месте после разработки часто стоит обучение менее опытного программиста, как правило, именно он непосредственно пишет код. Второй программист более опытный, он подсказывает, направляет, дает рекомендации;
- на равных. В этом случае работают два примерно одинаковых по опыту разработчиков, время от времени меняющихся местами;
- водитель-штурман. В этом случае программисты выбирают разные роли. Один пишет код, разбирается в деталях, а второй занимается архитектурой кода, решением логических задач, рисует схемы;
- пинг-понг. Один программист пишет тест, а второй – реализацию под него. После происходит смена ролей;
- удаленное ПП. Единственным минусом такого стиля является то, что нельзя тыкнуть пальцем в экран. А если серьезно, то в этом случае можно использовать разные инструменты: например, давать партнеру возможность одновременно с вами писать код или же только видеть ваш экран. Но многое также зависит от от интернет-канала: в случае неполадок на линии работать не получится. Здесь и здесь есть некоторые интересные решения для удаленного ПП. Для такого стиля работы рекомендуют сократить итерации по времени и почаще коммитить код.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.