На HeadHunter более 130 тыс. резюме программистов. Кандидаты есть практически по любым специализациям. Уровень зарплатных ожиданий, наверное, вызывает раздражение у работодателей — тем более, что это не единичные психи с манией величия, и даже не происки несуществующего профсоюза. Просто будничная реальность.
По данным Хабр Карьера, медианная зарплата по IT в России составляет 108 тыс. руб. Москва — 150 тыс. руб., Санкт-Петербург 120 тыс. руб., регионы – поменьше, конечно, но тоже выше других специальностей. Это все «айтишники», а не только программисты. Мобильные и системные разработчики претендуют уже на 120-125 тыс. руб./мес.
Многие бренды повышают ставки еще больше. Например, средние зарплаты в тройке лидеров (речь только о российских компаниях в России) — от 170 до 200 тыс. руб. Опять же, это по IT в целом и без пиковых значений, которые вообще в рублях не измеряются. Только тысячи долларов, только хардкор.
Впрочем, IT-гиганты, наоборот, могут платить ниже рынка. Например, кандидат запросто потратит месяц упорного труда на подготовку к интервью в Google. При этом даже название вашего ООО может не выучить (к вопросу о том, «почему вы выбрали именно нашу компанию»). Да не выбрали они никого персонально ниже десятки мировых лидеров. И это полная симметрия кадровой политике в поиске анонимных трудовых ресурсов.
Вот почему так важно установить контакт. Программистов нельзя отбирать по техническим характеристикам. По многим причинам (о чем подробнее ниже), а начиная с той, что выбирают они. Российский рынок программистов – это рынок кандидатов. Почему, ведь их так много? Да, только не для всех.
Вакансии глазами программистов
Прежде всего, наличие резюме ничего не говорит о намерении программиста найти работу именно сейчас. Просто характер карьеры в отрасли предполагает периодический (хотя бы раз в несколько лет) вопрос о следующих шагах. Они могут быть сделаны позже, часто без увольнения из прежней компании.
Далее мотивация у всех разная. Конечно, деньги нравятся всем. Но характер работы часто важнее. Например, аутсорсинговые IT-компании презрительно называют «галерами».
Про стартапы приятнее читать, чем к ним наниматься. Потому что пахоты там ненормированно много, риски – высокие, а потенциальными миллиардами господа основатели делиться не будут — тогда уж надо «пилить» собственный стартап (что многие программисты делать собираются или даже пытаются).
Казалось бы, очевидно респектабельный сектор B2B применительно к IT на самом деле означает, что вместо разработки заниматься придется поддержкой. Слишком крупные клиенты, все погрязли в давно запущенных процессах, новшества не приветствуются. Это карьерный тупик.
Продуктовые компании в B2C гораздо привлекательнее, причем они об этом знают. Поэтому беспощадный прессинг еще на дальних подступах, много сложных интервью, зарплаты далеко не всегда лучшие в пересчете на объем работы. Все как в той карикатуре, где рабам на строительстве пирамид говорят: «Зато представьте, что вы напишете в своем портфолио!»
Если человек намерен эмигрировать, то он приоритетно выбирает офферы из подходящих на его взгляд стран, с релокацией, ВНЖ. Остальное вторично. Пока «свалить» не получилось, будут работать дома, разумеется. При этом выбор идет по тем же лекалам — поможет или нет новая строчка в портфолио переехать в дальнейшем.
В этом главное различие между всеми кандидатами. У одних есть личный план развития, карьеры и жизни — у других его нет. Нетрудно догадаться, какая категория одновременно перспективнее по профкачествам и менее управляема.
Таким образом, бизнес неизбежно сталкивается с рисками. По сути, выбирать приходится между заглянувшими в гости звездами и аутсайдерами, которые мало что умеют. Причем аутсайдеры неплохо научились косплеить звезд, благо подсказок, как это делать, в сети предостаточно.
Цена ошибки кастинга — 1-2 оклада на поиск, отбор и адаптацию. Не говоря о срыве сроков по тем задачам и проектам, ради которых все затевалось. Есть смысл подойти к делу ответственно.
Как искать кандидатов
Простой, а точнее дуболомный путь — опубликовать вакансии у себя на сайте и на известных кадровых ресурсах. При этом достаточно скопировать любое похожее объявление неважно из какой отрасли, дописать туда все языки программирования, названия технологий и «айтишные» аббревиатуры, какие у кадровика получилось нагуглить и добавить какой-нибудь абстрактной казенщины про дружный коллектив, интересные проекты.
Все это сюр, конечно, из разряда вредных советов. Нет, а серьезно?
Ладно, тогда так:
- Обратиться к HR, специализирующимся на IT.
- Предлагать больше денег, чем в среднем по рынку и отрасли.
- Щедро добавить нематериальной мотивации.
- Давать обильную рекламу о вакансиях.
- Подробно рассказывать о своем бренде и проектах.
- Внимательно опрашивать и тестировать.
Гораздо лучше, но тоже слабо. Так можно получить только худших специалистов на рынке. Причем вы переплатите сначала за их поиск, потом за отбор и еще скорее всего будете регулярно переплачивать за работу. Потому что настоящие профи не соблазнятся, и вам останется выбор из тех, кого вообще-то стоило бы отсеять — но другие не пришли, условия уже озвучены, и вакансии нужно срочно закрывать.
Почему так происходит? Разработчики что, особенные? Это закрытая каста, которую не дано понять простым смертным? Ну, вообще-то да. Именно так IT-бизнес экономит много времени себе и кандидатам. Они говорят на одном языке, понимают друг друга с полуслова.
Справедливости ради, конечно есть профессиональные рекрутеры в IT, которые дадут фору любым сеньорам и тимлидам. Но это такая редкость, что ее можно списать на статистическую погрешность. Не говоря о том, что исключения сами подозрительно похожи на программистов. А это и есть ответ.
Хорошего программиста может нанять только другой хороший программист.
Недавний анекдот в связи с пандемией: таблички «Вход без маски запрещен» даже на аптеках. Если хочешь купить маски – первую нужно добыть в бою.
Именно так обстоят дела с рекрутингом в IT. Идеальный чертеж роста — фрактал, саморазворачивающаяся структура. Когда уже имеющаяся команда программистов определяет запросы и критерии по расширению своего состава.
Обратите внимание — не просто одни программисты должны отбирать других. А именно та самая, конкретная команда, которая уже работает над проектом. Может показаться, что здесь важно детальное знание конкретных технических подробностей, которые долго объяснять и сложно понять со стороны. Тоже имеет значение, но вторично.
Главный секрет программистов
Разработка, по определению, нацелена на разработку нового. Того, чего раньше не было. Ключевое отличие проектов в том, что успех не гарантирован. Не получится собрать на входе определенный набор ресурсов и компетенций, а потом переработать в нужный результат — да еще строго в сроки и бюджеты.
Слишком большая вариативность по реализации. Можно сделать так, можно эдак. Предварительный анализ вариантов может оказаться дороже проверки действиями. Причем главная переменная в уравнении — сами программисты. Точнее сыгранность команды.
Результативность группы разработчиков зависит не только от их знаний и навыков. Поэтому технического интервью недостаточно. Вопросы общего характера про склонность к командной игре и «лояльность бренду» тоже особого смысла не имеют до знакомства с будущими коллегами и конкретным проектом.
Наконец и возможно главное, интеграция нового участника в команду — тонкая материя, больше похожая на увеличение семьи, чем на покупку нового принтера. Это не механический процесс.
Что же делать?
К чему туман и эзотерика, как хантить-то уже? Есть нормальный чек-лист рекрутинга?
Да, и это не секрет. Программисты сами частенько его озвучивают. Такой, например:
- Координаты специалистов можно найти на сайтах с резюме, в Linkedin (заблокирован на территории РФ, чему далеко не все придают значение), с публикаций на отраслевых порталах, контекстной рекламы, отраслевых конференций.
- Звонок от рекрутера. Быстрый разговор — знакомство, уточнение взаимных интересов. Никаких подробностей, 5-10 минут.
- Онлайн-разговор с техническим директором или тимлидом. Не интервью! Разговор. 1 час.
- Изучение примеров работ, показанных кандидатом. Идеально ссылка на GitHub с его личными сайд-проектами. Можно продукты, сервисы, приложения, к которым он имел отношение (с конкретизацией личного участия).
- Техническое интервью с программистами компании. Рассмотрение конкретных кейсов и задач, в идеале без однозначных решений. Возможно, парное программирование или обсуждение технических аспектов. Несколько часов.
- Личная встреча в офисе (расходы на трансфер для иногородних за счет приглашающей стороны), презентация кандидата по заранее согласованной теме. Знакомство с командой, обсуждение технических примеров и задач.
Никаких анкет, тестовых заданий (тем более домашних, ведь непонятно кто их делает на самом деле), викторин с угадайкой цитат из документации, тошнотворных «психологических» изысков в поисках бюрократической лояльности.
Ключевое, самое важное отличие здорового рекрутинга — это диалог. Даже не взаимный допрос, где претендент на вакансию тоже имеет право задавать вопросы. А профессиональный разговор (будущих) коллег, в ходе которого проясняется кто над чем уже работал, плюсы/минусы разных подходов и технологий, какие выводы сделаны, чем хочется заниматься дальше, как именно и зачем.
Огромное значение имеет конкретика. Ведь новичку предстоит заниматься не сферическим кодом в вакууме, а:
- влиться в работу уже имеющейся команды (вот эти люди, привет, как дела);
- по таким-то и вот таким уже сделанным решениям о языках, фреймворках, т. д. (смотри, как мы это делаем сейчас);
- с разбором открытых вопросов (как бы ты таким занялся, есть идеи?);
- чтобы достигать новых целей (вот как мы растем, вот почему нужны еще люди).
Лучшие интервью проходят в такой обстановке, что стороннему наблюдателю непросто определить, кто кого собеседует. Все делятся идеями и замечаниями, задают вопросы, отвечают на них, обсуждают на равных. То есть работают, как оно на самом деле и происходит в здоровой софтверной компании (или подразделении, отделе).
Нет смысла проверять знания отдельно от умения применять их на практике. Не получится ничего хорошего, если человек не впишется в вашу команду. Лучше сразу сыграть в настоящую работу, чем сначала пропустить всех кандидатов через отдельную мясорубку HR (что отбракует не только худших, но и лучших), а потом понять, что оставшиеся тоже не подходят.
Заодно такой формат позволяет легко и органично по мере продвижения по рангам мидл/сеньор/лид менять фокусировку от технических вопросов к управленческим. Просто меняются темы для обсуждения.
Ну и нужно учитывать закон сохранения, конечно. Сумма зарплат и привлекательности проектов — величина постоянная.
А как вы подбирали программистов в команду? Пишите в комментариях!
Читайте также:
"Грамотному генералу храбрые солдаты не нужны". Это я к тому, что перед наймом прогеров неплохо архитекторов и тимлидов заиметь. Ну а дальше - да, "фрактал" и минимум проблем (при прочих равных)
Угу. Айтишники "ужасно рады", когда им спамят вакансии не по профилю.
Особенно весело, когда айтишник подписывал NDA на предыдущих работах.
Очень "актуально" в ситуации с карантином.
Всегда поступал так:
- ищешь или просишь кадровиков найти кандидатов с таким-то опытом (не стоит писать обо всём, только самый критичный, например, PHP);
- личная встреча. Нужно понять кругозор. Навык, совпадающий с требуемым процентов на 30-50. Довольно легко оценить, способен человек заниматься программированием, как искусством или нет.
- сразу обговаривать зарплату и конкретику.
Важно: кандидат должен поверить вам, а вы - ему.
Всё остальное - тесты - футесты просто ерунда. Достаточно задать пару вопросов.
Очень многое зависит от деталей и характера будущей работы. Если попытаться решить задачу и включить несколько важнейших пунктов в список для первичного отбора профессионалов в IT, то:
1) Первое образование, дополнительное образование и курсы, сертификаты
2) Ключевые слова, важные с точки зрения руководителя разработки (может быть много, но какие-то заведомо важнее других)
3) Опыт работы и проекты, в которых кандидат принимал участие - без деталей, нарушающих конфиденциальность
4) Несколько интервью с руководителем разработки и будущими коллегами. Это наименее формализуемая часть работы, но, возможно, самая содержательная.
5) Испытательный срок.
Удачи!
Не нанимайте звезд. Нанимайте "командных игроков". ИТ-шник способен выкладываться на 120% при должной само-мотивации, например, когда изучает для себя новую область задач, регламентные процедуры или сферу ответственности. При этом, нужно всегда "держать руку на пульсе". Программист - это не тот человек, которого можно нанять и "забыть о нем" на продолжительное время. И не потому, что программисты не способны к самоорганизации, а как раз наоборот. Тут еще много зависит от внутренней культуры компании. И, конечно, не нужно забывать, что разработка программного продукта - это производственный процесс. По факту, организация стоит перед выбором: организовать этот процесс самостоятельно или обратиться в ИТ-компанию, где этот процесс налажен. Непонимание этого факта приводит к провалу компании по найму программистов. И выбор кандидатов из звезд не решит проблему. Это также может обьяснить ситуацию, когда, при всех общих условиях, программисту/отделу комфортнее и лучше в плане эффективности работать на производственном предприятии в подчинении службы главного инженера, чем, например, в торговой компании в подчинении службы бухгалтерии или финансового отдела. В случае торговой компании, отдел ИТ нужно выводить в отдельную единицу в подчинении гендиру. Случаи, когда учетная система "впадает в кому" или ИТ-специалист становится "узким местом" отдела бухгалтерии, как правило, связаны с неверно определенным подчинением.
А если звезда командный игрок?
Звезда - противоположность командному игроку по определению.
Согласен на 100%. Бухгалтерия и финансовый отдел всегда привелегированные. Обе службы стоят на страже денег собственника и они ему запросто вправляют мозги. Таким образом частенько складывается ситуация, когда ИТ работает на 99% на бухгалтерию и финансовый отдел и на 1% занимается другими. Хотя по сути должно быть с точностью до наоборот. Настройка и поддержка ПО для коммерческих подразделений, склада, транспорта, даёт реальную прибыль и экономию средств за счет автоматизации процессов, но... есть бухгалтерия. Там, в святая святых, если у бухгалтера появляется потребность добавить колоночку в отчет, то всё... туши свет. Я решил данную проблему, наняв дополнительного программиста 1С специализирующегося на бухгалтерии и ввел его в штат бухгалтерии. Теперь главбух, как бы сам виноват, если что не работает... :))) И при этом сократил двух бухгалтеров. Так что по ФОТу получилось даже экономия
Программистов должны нанимать программисты. Но, во многих случаях и их, и других специалистов, нанимают HR-ры с соответствующими негативными результатами.
Не всякий программист хочет "заморачиваться" ещё и административными вопросами...И не всякий HR захочет постигать хотя бы поверхностный смысл профессиональных терминов и сленга программистов.
Но обе стороны (и руководство, и программеры) часто одинаково остро нуждаются в "рабочих лошадках" для обеспечения результата, так что "острова взаимопонимания" необходимо формировать, зачастую для каждого проекта - с индивидуальными параметрами