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

Дифференциация причин нахождения в процессе "ищу программиста"

Стратегии поиска разработчиков, могут значительно различаться в зависимости от целей:

1. в штат компании для расширения собственной команды разработки

2. для конкретных доработок сайта или приложения

3. в стартап

Найти разработчика в штат

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

1. Определиться с требованиями

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

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

  • Frontend
  • Верстальщик
  • Backend
  • Fullstack
  • iOs
  • Android
  • Разработчик игр

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

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

2. Грамотно составить вакансию

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

Если просто скопировать тексты других вакансий с какими-то минимальными изменениями, то может оказаться, что ищут совершенного иного специалиста, чем требуется. Разработчики, особенно опытные, придают значение мелочам. Порой указание или не указание в вакансии всего одной лишь технологии может сократить общую воронку кандидатов на 60%, а воронку реальных необходимых кандидатов и вообще снизить до 3-5% от потенциально возможных.

Что нужно указать в вакансии программиста

  1. Описание деятельности компании.
  2. Описание проекта, в котором открыта вакансия.
  3. Как организован процесс работы команды и какая методология разработки используется.
  4. Спектр задач, которые нужно решать. Отлично, если будут указаны примеры конкретных задач.
  5. Стек технологий, используемый в проекте.
  6. Требования к кандидату в конкретной команде на конкретном проекте.
  7. Условия работы.

3. Посмотреть в текущей базе кандидатов

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

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

4. Публикация вакансий

Следующим шагом будет публикация вакансии на доступных ресурсах:

  1. внешние сайты вакансий
    1. HeadHunter
    2. SuperJob
    3. Rabota
    4. ITMozg
  2. корпоративный сайт компании или сайт проекта
  3. профильные форумы
    1. djangoProject (Django)
    2. javaTalks (java)
    3. linux.org.ru (Linux/Unix)
    4. phpClub (php)
    5. phpforum (php)
    6. sql.ru (базы данных)
    7. sqlinfo (MySQL)
    8. hardforum
    9. programmersforum
    10. realcoding
    11. rsdn.org
    12. vingrad
  4. социальные сети
    1. LinkedIn
    2. Facebook
    3. ВКонтакте
    4. Twitter
    5. Kaggle (машинное обучение и обработка данных)
    6. ResearchGate (научный уклон)
    7. Хабрахабр
    8. SlideShare
  5. профильные чаты в телеграмме
  6. профессиональные ресурсы
    1. GitHub
    2. Stackoverflow
  7. сервисы для поиска
    1. Amazinghiring
    2. AngelList (для стартапов)
  8. сайты онлайн-школ разработки
  9. также можно организовать тематический хакатон или митап

5. Обработка откликов

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

На сортировку и ответы на отклики может понадобиться несколько полных рабочих дней, причем действительно хороших кандидатов среди них будет только 3-10%.

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

На этом этапе также можно осуществить фильтрацию, посмотрев примеры кода, которые предоставят кандидаты.

6. Отслеживание новых резюме

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

7. Переписка и созвоны с кандидатами

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

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

8. Собеседование

Что касается количества стадий собеседования, здесь возможны различные вариации. Можно проверить софт-скиллы (от англ. soft skills, связаны с личностными качествами) и хард-скиллы (от англ. hard skills, связаны с программированием в нашем случае) в рамках одного интервью, а также разбить проверку на этапы и стадии. Тут все зависит от того, кто и на какую позицию подбирает разработчиков. Часть из них может пройти по телефону, или скайпу, а если это удаленная работа, то и все ступени.

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

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

8.1. Софт-скиллы

К проверке софт-скиллов можно отнести и сам факт появления на собеседовании. При поиске разработчиков нередки случаи, когда кандидат просто не приходит на собеседование в назначенное время.

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

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

На эту стадию, как правило, требуется 30-60 минут на каждого кандидата.

8.2. Хард-скиллы

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

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

На эту стадию, как правило, требуется 30-120 минут на каждого кандидата, в зависимости от вакансии.

8.3. Тестовое задание

Тестовое задание будет уместно в 3 случаях: 

  1. ваша компания называется Google или Яндекс;
  2. вы нанимаете разработчика на должность стажера.

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

Найти программиста для доработок сайта или приложения

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

Фрилансеров-программистов можно найти на специализированных порталах:

  • fl.ru
  • kwork
  • upwork
  • oDesk
  • freelansim
  • weblancer
  • Profi Ru
  • Youdo
  • Яндекс.Услуги

Также можно воспользоваться тематическими форумами и группами в соц. сетях

Найти разработчика в стартап

  1. Стартап с инвестициями

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

Если стартапа уже есть работающий MVP и инвестиции, то тут подойдут рекомендации по поиску программиста в штат.

  1. Стартап "гаражного" типа

Если инвестиций мало, то можно посмотреть рекомендации для поиска разработчика для доработки сайта

Если денег совсем нет, то тут варианта 2:

1) "продать" идею инвестору и найти деньги на разработку

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

Заключение

Хорошие специалисты востребованы в любой сфере, но это еще более усиливается в сфере разработки программного обеспечения. Чтобы нанять сильного специалиста, вам потребуется потратить на это время и ресурсы.