Дороги много; только ты можешь выбрать тот, который взять

Если вы считаете, что процесс найма технических специалистов в вашей компании или отрасли в целом достаточно хорош, этот пост для вас.

Льюис Кэрролл написал в« Алисе в стране чудес : Если вы не знаете, куда идете, любая дорога может привести вас туда . В дополнение к этому, если вы не знаете, куда идете, вы пойдете по дороге, по которой все уже прошли.

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

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

Cargo Cult Programming - это когда вы добавляете код в проект, не понимая его. Легкий способ определить Cargo Cult Programming - это когда кто-то чрезмерно увлечен фреймворками. Фреймворки диктуют, как вы должны разрабатывать свое программное обеспечение в заранее заданном фрейме. Однако проект редко умещается в произвольном фрейме. В большинстве случаев программный проект требует другой архитектуры и другого дизайна для устойчивого развития.

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

Если вы намерены сократить долгосрочные затраты на процесс разработки программного обеспечения и добиться отличных результатов, вместо рекламы на досках вакансий для людей, которые знают конкретную структуру или технологию, такую ​​как Angular, .NET, React, Redux или интерфейс, рекламируйте роли для поиска фундаментальных навыков, таких как предметно-ориентированное мышление, дизайн программного обеспечения или функциональное программирование.

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

Однако один разработчик с фундаментальными навыками со временем создает более устойчивую ценность, чем несколько разработчиков фреймворков или технологий.

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

Нанимайте людей с фундаментальными навыками, а не с базовыми или технологическими навыками

Была эта компания, в которой работало 34 сотрудника. В той же компании также было 34 должности, а это значит, что у каждого человека в организации был свой титул. Названия варьировались от Express Developer и JavaScript Ninja до DevOps Engineer и API Influencer.

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

Однако при рекламе роли вам может потребоваться указать значимые заголовки; в противном случае правильные люди могут никогда не найти его в рыночном хаосе. Однако, рекламируя роль, указывайте в описании, в которой компания нуждается в данный момент, а не технические навыки, которые, по вашему мнению, необходимы компании. Например, кандидат, имеющий опыт работы в командах коучинга, или кандидат, имеющий опыт проектирования систем в финансовой сфере, а не Front-End разработчика или Java-разработчика.

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

Рекламируйте роль технических характеристик, которые вы ищете, а не технических навыков.

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

Хороший пример - когда компания разрабатывает план по созданию мобильной версии своего веб-продукта. Веб-сайт представляет собой тяжелый интерфейс на основе JavaScript с бизнес-логикой, написанной на React и Redux. В этом случае широко распространена идея рекламировать роли для разработчиков iOS / Android. В этом есть смысл.

Если вы хотите создать приложение для iOS или Android с некоторой степенью сложности или сложности, вам нужно нанять кого-то, кто уже был там раньше. Однако вы уже предполагаете, что вам нужен кто-то, кто написал бы код для iOS или Android; что, если в этом нет необходимости?

Вместо того, чтобы рекламировать роль разработчиков iOS / Android, вы можете объявить, что вам нужен разработчик для создания мобильной версии существующего веб-продукта. Если вы сделаете это, вы можете привлечь разработчиков, которые понимают основы, лежащие в основе Jasonette, например, и которым не нужно писать ни одной строчки на Java или Objective C для повторного использования интерфейсной бизнес-логики в мобильном приложении. Это может быть на порядки более рентабельным, чем создание всего с нуля.

Вы, вероятно, не знаете всего о проектировании протокола HTTP, эволюционируемых API-интерфейсах, Jasonette, функциональном программировании, поиске источников событий или проектировании, основанном на событиях; так что перестаньте притворяться, что знаете, какие именно навыки нужны проекту.

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

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

Наем технических специалистов - дело сложное и дорогое.

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

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

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

Идти по этой дороге - все равно что никуда не двигаться.

Спасибо за прочтение. Если у вас есть отзывы, напишите мне в Twitter, Facebook или Github.

Спасибо Клеристону Бернардесу и Яну Тинсли за их полезный вклад в этот пост.

Хотите пообщаться лично? Вы можете найти меня на встрече разработчиков программного обеспечения в Сиднее.