Согласно Википедии, парное программирование — это метод гибкой разработки программного обеспечения, при котором два программиста работают вместе на одной рабочей станции. Один, водитель, пишет код, а другой, наблюдатель или навигатор, просматривает каждую строку кода по мере ее ввода. Два программистачасто меняются ролями.

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

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

Этот час был наполнен взаимным обучением и плодотворными беседами, но вот суть того, что я узнал:

  1. Мы подтвердили общее понимание того, что мы ищем разработчиков с хорошо написанными резюме, которые быстро доходят до сути и подчеркивают их собственные достижения. Есть типичные резюме, которые занимают более 4 страниц с повторяющимся контентом, который на самом деле мало что говорит о вкладе человека, а скорее представляет собой скопированное описание работы прошлой / существующей роли. Забота о том, как вы преподносите себя, является отражением гордости за работу, которую вы делаете.
  2. Термин «технофункционал» относится к тому, кто относительно не связан с кодом по сравнению с разработчиком полного стека. Кандидат, который был техническим функциональным консультантом в течение длительного периода времени, будет иметь меньше шансов хорошо подойти для нашей роли, но всегда есть исключения. Конечно, поиск в гугле даст определение этого термина, но получение прямого отзыва от человека, который работал с большим количеством людей с разными ролями в различных проектах на основе опыта, стоит гораздо больше.
  3. Поскольку мы искали старших разработчиков, которые являются программистами-полиглотами, мы рассчитываем на знание и опыт работы как минимум на двух языках программирования из-за широты знаний, которые нам нужны в той работе, которую мы выполняем с клиентами. Хотя это было то, что я уже знал, это послужило хорошим напоминанием, поскольку в последнее время я все чаще давал шанс людям, которые только что работали в одноязычной экосистеме (например, .NET). Однако дальнейшие собеседования с такими кандидатами, как правило, давали отрицательные результаты, поэтому я стал более осторожным при рассмотрении похожих кандидатов.
  4. Ценность побочных/личных проектов на Github высока. Здесь вы учитесь в ускоренном темпе. Хотя в парном программировании есть чему поучиться, работа над собственными проектами в одиночку позволяет вам двигаться быстро и углубляться.
  5. Наличие сертификатов в различных областях технологий является хорошим признаком, поскольку свидетельствует о широте интереса и любопытства, а также о действиях, которые были предприняты для удовлетворения этого любопытства. Это было еще одним хорошим напоминанием для меня, так как я не уделяю много внимания сертификации, так как это не является требованием для ThoughtWorks, но теперь я приму это к сведению.

С учетом сказанного и сделанного, набор в ThoughtWorks никогда не является попыткой найти точно такую ​​же форму, которая соответствовала бы нашим ролям, а вместо этого представляет собой более широкий набор людей, которые имеют разные интересы и работают в этих интересах. Будучи частью сообщества, которое стало пионером agile и продолжает жить и дышать, это позволяет мне по-настоящему понять, что значит иметь agile-мышление, по факту испытав преимущества быстрой обратной связи, среди прочего.

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