Парное Программирование: Что Это, Зачем Нужно И В Чём Сила Этого Метода

Есть несколько причин, по которым некоторые организации, занимающиеся гибкой разработкой, выбирают подход парного программирования. В исследовании «Explaining pair programming session dynamics from data gaps» (Freie Universität Berlin) авторы изучали поведение пар c позиции недостаточности знаний. Знания они разделили на специфичные для разрабатываемой системы и общие (как вообще разрабатывать, паттерны, знание языка программирования и так далее).

«Я сидел с одним из самых неопытных разработчиков и решал какую-то простую задачу. Честно говоря, я думал о том, что, обладая большим опытом работы, я буду учить этого молодого программиста тому, как нужно писать код. Мы проработали несколько минут, после чего юноша спросил меня, почему я делаю то, что делаю. Затем он напомнил мне правильное название метода, который я в тот момент набирал с ошибками. Очень скоро он стал подсказывать, что мне делать дальше, при этом указывая на мои ошибки». Если у вас есть очень простое исправление ошибки или простая функция для реализации, может оказаться дорого поставить двух программистов на эту задачу.

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

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

Мы С Тамарой Кодим Парой: Что Такое Парное Программирование

За пару недель разработчики рассказывают друг другу почти всё, что знают сами, поэтому для получения новых знаний лучше давать сотрудникам возможность общаться с новыми членами команды. В первую очередь потому, что оно значительно экономит время на рефакторинг. Когда над одним участком работают два программиста, в коде становится меньше багов. «Пинг-понг» — этот подход тесно связан с разработкой через тестирование (test driven development). В этом случае один пишет сначала тест, а второй — код, который должен пройти этот тест, затем роли меняются.

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

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

Как мы отметили выше, через какое-то время участники меняются ролями. Напарники тоже могут меняться, то есть следующее задание вы можете делать уже с другим человеком. Эти умственные перерывы и действия имеют первостепенное значение для успешной культуры парного программирования. Вот почему в Menlo они следят за тем, чтобы пары программистов делали перерывы в течение дня. Утром сотрудники Menlo проводят мероприятие под названием «stand-up», где они делятся тем, над чем они будут работать в этот день. Во второй половине дня они проводят мероприятие под названием «walkies», где они гуляют по кварталу.

Динамика Работы В Паре

Теперь это мой любимый формат, потому что он позволяет проверить способности кандидата с наименьшим количеством усилий. Вся команда работает над одной задачей в один момент времени, в одном месте за одним большим экраном. Устраняет любые очереди в разработке, так как по парное программирование для чего сути команда работает в режиме one-peace-flow Подробнее в выступлении Ивана Зимина «Командное программирование». А для expediency важным фактором является предварительная проработка решения, ведь известно, что задачу мы решаем до того, как приступаем к написанию кода.

Оно возникло в рамках новой методологии — экстремального программирования (extreme programming, XP), которую в конце 1980-х придумал разработчик Кент Бек. Когда какой-то программист застрял в какой-либо проблеме, не очевидно, что он или она сразу обратится за помощью. В конце концов, они могут решить ее через один Google-поиск. Однако, если пара программистов застряла в проблеме, то совершенно очевидно, что они должны обратиться за помощью. Если два человека должны договориться друг с другом, прежде чем обращаться за помощью к другой паре в компании, это означает, что они не будут просить о помощи чрезмерно часто.

«Всезнайки» или «Лучшие исполнители» являются одними из самых больших угроз для продуктивности в командах. Я бы не хотел постоянно общаться с партнером на работе». Ни в какой другой обстановке вы не будете находиться настолько на одной волне. Вы сталкиваетесь с одной и той же проблемой и пытаетесь решить ее ВМЕСТЕ.

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

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

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

Ранее я говорил, что программирование – это преимущественно командная работа. Когда вы начинаете писать код с партнером, вы развиваете навыки работы в команде. Вы учитесь формулировать свои мысли, правильно задавать вопросы, слушать идеи, которые могут отличаться от ваших, комментировать код другого человека и приходить к компромиссу. Парное программирование позволяет получить навыки работы в команде, которые являются ключевыми для разработки хорошего программного обеспечения. Найти команду, в которой вы будете учиться и расти, будет трудно, а вот найти человека для парного программирования реально. Сценарий “волка одиночки” возможен в определенных ситуациях, если вы фрилансите или работаете над простеньким проектом.

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

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

Особенности Парного Программирования Для Тех, Кто Ищет Работу

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

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

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

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

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

Один программист (называемый драйвером) пишет код, а другой (наблюдатель) наблюдает, просматривает и дает рекомендации. Результаты исследований соответствуют и моим наблюдениям. Например, togetherness, единая ментальная модель. Без нее работа в паре может превратиться в спор, бесконечный и беспощадный. Именно поэтому само по себе парное программирование не позволит «соблюдать и передавать стиль кодирования», если вы в команде, вместе, заранее об этом стиле не договорились.

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

Его сразу же начали применять автомобильные гиганты Ford Motor Company и Daimler Сhrysler AG. Сейчас метод активно используют во многих ИТ-компаниях, как в больших, например, в Facebook, Pivotal Software, Grockit, так и в растущих, в таких как Drizly. Это позволит вам сохранить вовлечённость и смотреть на работу под разными углами. Кроме того, трудно удерживать внимание на чём-то одном дольше получаса.

Leave a Comment

Your email address will not be published. Required fields are marked *

six − one =

Shopping Cart