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

Но что происходит, когда вы совсем один и сталкиваетесь с противником, с которым никогда раньше не сталкивались? Что, если вашему игровому движку требуется сложное физическое моделирование или трехмерное позиционное аудио, или что, если вы просто никогда раньше не использовали React или Redux, и вам просто нужно опытное руководство, которое покажет вам основы?

Что, если вы преследуете ошибку уже 3 часа, и все, что вам нужно показать, это разочарование, неуверенность в себе и, возможно, даже небольшой синдром ползучего самозванца?

Парное программирование может помочь.

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

Парное программирование - это методология разработки программного обеспечения, которая работает как пилоты авиакомпаний: у вас есть капитан за штурвалом и штурман.

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

Навигатор может даже время от времени брать на себя управление автомобилем. Иногда вам нужно увидеть что-то сделанное, прежде чем вы сможете понять, как это сделать.

Культура наставничества

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

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

Сопряжение стилей

Существует 2 общих стиля парного программирования, и оба действительны, хотя у меня есть предпочтение, как вы скоро увидите.

100% сопряжение

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

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

Специальное соединение

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

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

Каждый разработчик совершает глупые ошибки. Любой, кто говорит вам, что нет, - лжец. Нам никогда не должно быть стыдно просить о помощи. Я часто прошу о помощи, и делаю это большую часть своей жизни.

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

Парное программирование на помощь.

Советы по сопряжению

Вот несколько вещей, которые мне подходят:

  1. Используйте приложение для удаленного управления, такое как Zoom Basic, для интерактивных сеансов удаленного сопряжения, когда любая из сторон может взять на себя управление и управлять автомобилем.
  2. Сопряжение требует высокой пропускной способности. Иногда видеочат действительно хорош. Если у вас нет Screen Hero, попробуйте Google Hangouts.
  3. Прежде чем приступить к делу, четко объясните, что вы пытаетесь сделать, чего вы ожидали, и что произошло на самом деле. Продемонстрируйте проблему, запустив код.
  4. Если вы помогаете кому-то другому, позвольте ему водить машину. Люди учатся лучше, когда их мозг занят чем-то активным. Они будут лучше помнить, как это сделать в следующий раз, если будут за рулем.
  5. Если объяснять что-то явно не получается, садитесь за руль. Покажи, не говори.
  6. Не считайте себя глупым или неполноценным, если помощнику нужно время от времени брать у вас руль. Будьте открыты и восприимчивы к помощи. Оставайтесь с нами. Обратите внимание и постарайтесь следовать за вами.
  7. Как только вы почувствуете уверенность в том, что на правильном пути, посмотрите, сможете ли вы снова выступить в одиночку. Я знаю, что это не всегда так, но мы учимся лучше всего, когда нашему мозгу бросают вызов. Быть храбрым!

Заключение

Парные программисты - это:

  • Отличная моральная поддержка.
  • Хорошие слушатели и дека.
  • Герои, которые приходят на помощь, когда товарищ по команде попадает в беду.

Не сомневайтесь, сделайте шаг вперед и станьте героем. Даже если вы не уверены, что можете помочь. Иногда бывает достаточно, чтобы кто-то выслушал проблему, чтобы спровоцировать прорыв.

А теперь перестаньте тратить время на то, чтобы стучать головой по клавиатуре, и попросите о помощи.

Нужна помощь прямо сейчас?

1: 1 Наставничество с Эриком Эллиоттом

Эрик Эллиотт - автор книг Программирование приложений JavaScript (О’Рейли) и Изучение JavaScript с Эриком Эллиоттом. Он участвовал в разработке программного обеспечения для Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC и ведущие музыканты, включая Usher, Frank Ocean, Metallica и многие другие.

Он проводит большую часть времени в районе залива Сан-Франциско с самой красивой женщиной в мире.