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

Какое отношение большие плюшевые груши имеют к разработке программного обеспечения? Чтобы выяснить это, мы попросили инженеров Mavenlink взять интервью друг у друга на камеру о влиянии парного программирования на культуру и код. Ознакомьтесь с основными моментами из этих бесед ниже — и не пропустите наш грушевый вариантмежду двумя папоротниками в конце этого поста.

В число избранных знатоков входят Аманда Холл (инженер-программист), Энди Ливитт (директор по проектированию), Джефф Мур (ведущий архитектор TP), Кэтрин Мейерс (инженер-программист), Наоми Джейкобс (инженер-программист) и Роджер Нил (технический директор). и учредитель). Если вы заинтересованы в присоединении к нашей команде, ознакомьтесь с открытыми вакансиями или напишите JB Steadman (старший вице-президент, инженер): [email protected].

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

Кэтрин: Парное программирование — это когда два инженера вместе пишут код. Это звучит странно.

Джефф:Сопряжение — это два человека, сидящие за одним компьютером с двумя клавиатурами и двумя мышами и хаотично печатающие друг над другом.

Роджер:через каждую вторую букву.

Кэтрин: Так всегда бывает. Это называется кросс-драйв.

Почему парное программирование не вдвое менее эффективно?

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

«Каждый может работать в два раза быстрее, потому что у вас есть два обычно великих ума, работающих над одним и тем же». –Аманда

Аманда:Я была настроена очень скептически, когда впервые брала интервью, и Кэтлин упомянула: «О, мы здесь занимаемся парным программированием». Мой немедленный вопрос был почему? Это просто казалось пустой тратой времени. Я подумал: разве вы не сделали бы больше работы, если бы у вас было два человека, работающих над вещами? А потом я на самом деле пришел сюда для моего интервью на месте, и я такой, о, я вижу, что был совершенно неправ.

Энди: Когда два человека сосредоточены на одной и той же проблеме, у вас действительно есть шанс объединиться и просмотреть множество возможностей и решений.

Кэтрин: И создавать лучший код.

Почему спаривание дает лучший код?

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

Джефф:Когда вы не создаете пары, у вас в конечном итоге появляются эти маленькие средневековые вотчины, которые вы очень оберегаете. И вы говорите: «Это мое дело, и я знаю об этом, и поэтому я не хочу, чтобы вы знали об этом». Когда вы точно знаете, что кто-то другой будет работать над кодом, который вы пишете завтра, вы, скорее всего, будете писать этот код с прицелом на удобочитаемость, а это ведет к удобству сопровождения.

Как создание пар влияет на культуру Mavenlink?

Джефф: Сотрудничество становится правилом, а не исключением. Я думаю, что во многих культурах сотрудничество — это признак слабости, типа «О, я не могу этого понять. Я признаю поражение и пойду задам вопрос другому человеку». В то время как здесь ожидается и поощряется обращаться за помощью, работать с другим человеком, чтобы инженеры действительно разговаривали друг с другом.

«Все говорят, а не просто болтают. Люди ведут содержательные инженерные дискуссии». –Аманда

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

Почему вы решили работать в парной команде?

Джефф: Я был почти уверен, что работа программистом будет похожа на жизнь в Office Space, и я никогда не хотел этим заниматься. У меня были друзья, которые занялись информатикой и сразу после школы устроились программистами, и в целом они ненавидели свою жизнь. По чистой случайности я навестил [Роджера] в Pivotal [Labs] и увидел, что, эй, есть другой способ делать вещи: люди разговаривают друг с другом и сотрудничают.

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

«Ожидается и поощряется обращаться за помощью, чтобы инженеры действительно разговаривали друг с другом». -Джефф

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

Вы всегда в паре с одним и тем же человеком?

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

Есть ли определенные роли в паре?

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

«Чтобы быть хорошей парой, вы должны обладать большим эмоциональным интеллектом и большим сочувствием. Это приводит к созданию действительно приятной рабочей среды». –Наоми

Есть ли кто-нибудь, с кем вы боитесь спаривания?

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

Как парное программирование стало частью культуры Mavenlink?

Роджер:Сопряжение было сделано намеренно. С самого начала мы всегда были в паре. Много лет назад я работал в сфере продаж, и мы создавали собственные демоверсии. Часто они приходили в последний момент. У нас было дело, которое нужно было закрыть, и мы просто должны были выполнить работу. В любое время, когда это было так, мы соединились на нем. Это всегда были трудные вещи, которые мы объединяли. Мое обоснование заключалось в том, [что] создание этой компании и создание программного обеспечения всегда будет сложным, так почему бы не всегда сочетать? Затем мы нашли Pivotal Labs, которые также привили нам эту культуру.

Джефф: Кроме того, поскольку [Mavenlink] оставался в Pivotal так долго, мы увидели цикл стартапов, которые заключали контракты с Pivotal Labs, давали им кучу денег и говорили: «Пожалуйста, создайте этот продукт для нас». Затем они брали этот продукт, покидали гнездо и сразу же прекращали спаривание. Если бы они выжили, [они] вернулись бы через два года и сказали: «Помогите. Все сломано!» и снова начните сопряжение.

А теперь слово от нашего технического директора…

Хотите присоединиться к команде Mavenlink?

Ознакомьтесь с открытыми вакансиями в Сан-Франциско и Солт-Лейк-Сити или отправьте электронное письмо Дж. Б. Стедману (старший вице-президент по инженерным вопросам): [email protected].