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

Почему появился рынок аутсорсинга разработки

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

В свежей статистике HeadHunter я обнаружил занятные цифры. По запросу «веб-разработчик» 2 000 вакансий и 70 000 резюме по всей России. По этим цифрам кажется, что для работодателя все хорошо: вакансий мало, сотрудников много. Скорее всего, работодатели сидят с большой кубинской сигарой, а сотрудники ломятся на работу за небольшие деньги.

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

Способы борьбы с дефицитом кадров: центры обучения и вузы

Онлайн-центры — Skillbox, «Нетология» и тому подобные. На сегодняшний день этот рынок в России развивается и помогает решать ситуацию с кадрами. Выпускники онлайн-школ — это уверенные джуны, но без практического опыта, им надо еще минимум 6-12 месяцев прокачивать знания до уровня «мидл», работая с реальными проектами.

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

Самостоятельно обучать специалистов всегда долго и дорого. Например, у нас есть свой центр обучения, аккредитованный «1С-Битрикс», мы вправе обучать разработке на CMS компании и выдавать сертификаты. Учеба в нашем центре длится четыре месяца, после нее мы получаем специалиста уровня «джуниор». Чтобы получить из него мидла, нужно еще 6-8 месяцев обучения.

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

Сложности найма инхаус-команды для разработки

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

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

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

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

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

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

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

Когда нужен аутсорс разработки

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

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

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

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

Три формата работы на рынке аутсорсинга разработки

Fixed — когда у задач фиксированная стоимость. Вы отдаете задачу на аутсорс, аутсорсеры рассчитывают ее цену до начала работы. Плюс в том, что стоимость сразу известна, не может меняться. Как правило, если аутсорсер не так посчитал, что-то не учел, это его проблемы.

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

Минус fixed-подхода — в стоимость заложены риски, поэтому она обычно на 10–30% выше, чем при почасовой оплате. Также перед стартом работы тратится время на оценку: задачу разделяют на подзадачи, ответственные специалисты считают, сколько займет ее реализация, какая нужна экспертиза, потом менеджеры оценивают стоимость. Если вы отправляете задачи аутсорсерам стеком по 20-30 штук, временные потери могут быть большими.

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

T&M (time and material) — оплата за фактически потраченное время. Здесь для клиента все прозрачно и понятно. Минус в том, что аутсорсер может дать только приблизительную оценку стоимости работы. По факту на задачу может уйти меньше или больше времени, чем предполагалось на старте, соответственно, стоимость меняется в большую или меньшую сторону.

Преимущество T&M — стоимость аутсорса дешевле по сравнению с fixed. Но может быть такое, что менеджеру лень составить ТЗ разработчику, он объясняет ему задачу словами, в итоге время специалиста тратится не на разработку, а на разговоры с менеджером.

Outstaff — полный выкуп специалистов. Программист определенного уровня (джуниор, мидл, сеньор) от компании-аутстаффера начинает работать как штатная единица заказчика. Если купленный сотрудник заболел или уволился, компания обязана найти ему замену, как правило, в очень короткие сроки — 1-5 дней, чтобы избежать простоев в работе.

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

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

Для аутстафферов особенности такого формата работы в возможном выгорании сотрудников и проблемах с их профессиональным развитием. Например, у нас в команде много разработчиков, и те из них, кто погружен в сторонние проекты клиентов, иногда чувствуют себя «белыми воронами», потому что не участвуют в жизни команды, в текущих проектах компании. Также есть сложности с профессиональным ростом специалистов. У нас для каждого разработчика есть карты развития, где на полгода вперед прописано, чему нужно научиться, чего достичь. На развитие и обучение сотрудников мы выделяем определенное время раз в неделю или месяц. С сотрудником на аутстафе так сделать нельзя, все его часы работы проданы клиенту. Конечно, это минус для разработчика и для нас, так как специалист не растет внутри команды.

Как мы интегрируем команды разработки в бизнес клиента

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

  1. Собираем команду в зависимости от проекта клиента.
  2. Делаем карту интеграции команды — план по внедрению специалистов в бизнес-процессы клиента.
  3. Определяем KPI и дедлайны для команды. Не всегда важны только дедлайны, нужно считать эффективность команды и делать это правильно.
  4. Определяемся с коммуникациями — есть разные CRM-системы и task-менеджеры, важно, чтобы наша интегрированная команда работала так же, как все сотрудники клиента.

Чек-лист: как выбрать компанию для аутсорса разработки

  1. Четкое позиционирование. Не бывает аутсорсинговых компаний, которые делают полный цикл работ, к примеру, создание сайта с нуля. Аутсорсеры — это эксперты в одном направлении, максимум в двух смежных, например: mobile-разработка и web-разработка. Никогда хорошие аутсорсеры не делают дизайн, разработку и еще 10 разных услуг одновременно.
  2. Наличие грейдов и их описание. Если аутсорсер продает джуниоров, мидлов и сеньоров, должны быть четкие описания грейдов, чтобы было понятно: что это за специалист, что он умеет.
  3. Согласие на собеседование. Даже если вы не планируете собеседовать каждого разработчика, спросите у представителя компании, готовы ли они к собеседованию. Как правило, в адекватных аутсорсинговых компаниях к собеседованиям относятся положительно.
  4. Обезличенные резюме + карта компетенций. Обезличенные резюме — это обычные резюме сотрудников, только без контактных данных. Карта компетенций — описание компетенций специалиста, чтобы можно было подобрать разработчика с нужной степенью экспертизы. На запрос клиента компания должна предоставить несколько обезличенных резюме свободных сотрудников с описанием их компетенций.
  5. Кейсы. С кейсами может быть такая проблема, что у аутсорсера проекты для других компаний находятся под NDA, подробности нельзя разглашать. Поэтому кейсы могут быть обезличенными, без указания конкретных заказчиков.

Статья подготовлена на основе выступления Андрея Морозова на бизнес-завтраке Mail.ru Cloud Solutions x FIRECODE «Масштабирование разработки за счет аутсорса». Все выступления с бизнес-завтрака можно посмотреть на YouTube-канале MailRu Cloud Solutions.