Выращиваем собственные кадры в ИТ. Часть 1. Как найти талантливых стажеров

Анвар Хусяинов Источник: E-xecutive

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

Введение.

В последние годы на рынке информационных технологий спрос на квалифицированные кадры серьезно превышает предложение. Это уже давно стало тенденцией: зарплаты все растут и растут, появляются новые рабочие места, а специалистов не хватает. К примеру, в апреле 2005г. средняя зарплата программиста .NET в Москве была около $1200, в январе 2006г. она стала составлять $1600, а сейчас я зачастую вижу вакансии с предложениями зарплаты, превышающей $2000. Если произвести поиск вакансий в Москве для разработчиков на платформе .NET на сайте job.ru с указанной заработной платой от $2500, то можно обнаружить, что ежедневно появляется 12-15 объявлений, удовлетворяющих заданным критериям. В тоже время ИТ-специалисту с низкой квалификаций работу найти гораздо сложнее, и предложение превышает спрос в несколько раз. В этой статье я расскажу, как использовать сложившуюся ситуацию с максимальной выгодой.

Далеко не всегда разумно платить разработчику ПО $2000/месяц, однако рынок растет, а против рынка, как известно, не попрешь.

Лично я считаю, что практически каждой ИТ-компании необходимо внедрить программу по выращиванию собственных кадров. И растить настоящих специалистов из молодых талантливых ребят, у которых горят глаза, которые готовы программировать сутки напролет, которые хотят почувствовать себя частью команды, хотят научиться, разобраться, хотят стать настоящими профессионалами, хотят получить результат и увидеть свою фамилию в «About» созданного продукта… В конце концов, эти ребята ради всего вышеперечисленного готовы работать за еду… Это, конечно, шутка, но с 200 долларов можно вполне начать. И я готов доказать, что при грамотном подходе из них вырастают настоящие «зубры» всего за несколько месяцев, при этом проекты успешно выполняются, а бюджеты перестают таять с привычной скоростью.

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

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

Часть 1. Как найти талантливых стажеров?

Исходные условия

г. Москва, небольшая ИТ-компания (20 человек).

Условия работы:

·Свободный график от 24 часов в неделю, возможность работы в субботу и воскресенье (для студентов), для закончивших обучение и студентов в каникулы – 40-часовая рабочая неделя.

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

·После обучения положен испытательный срок продолжительностью один месяц, который оплачивается по ставке $200.

·При успешном прохождении испытательного срока стажеру назначается заработная плата в размере $300/мес.

·По прошествии каждого месяца работы заработная плата сотрудника может быть повышена на $50, при условии наличия профессионального роста. Это следует понимать так: если сотрудник нормально работает, каждый месяц его заработная плата будет увеличиваться на $50.

·Рост заработной платы сотрудника предусматривается до отметки $1200, по достижению которой заключается трудовой договор на иных условиях с фиксированной заработной платой.

·Соц.пакета, бонусов и т.п. предусмотрено не было.

Стоит отметить:

На заработную плату сотруднику по такой схеме требуется $6250 в год, при этом сотрудник достигает отметки $800/мес. к концу года.

На заработную плату программисту, работающему по ставке $1700/мес., требуется $20400 в год.

Требования

Нам требовалось несколько программистов для разработки продукта Password Commander. Проект был изначально создан на Delphi 7, поэтому кандидат должен был владеть этим инструментом разработки. Мы хотели найти талантливых и увлеченных программистов, которые одни по вечерам или в компании других таких же любителей-студентов писали программки для различных нужд. Нам требовались люди, которые умеют мыслить, знают основные понятия и конструкции языка (рассказывать, что такое if, case и for совершенно не было желания), а самое главное, подходят к программированию с небывалым энтузиазмом и имеют огромное желание работать и осваивать новые технологии. Если кандидат при этом пишет код в одну строчку и называет переменные «a1», «a2», «xxx» и «yyy», меня это не волнует, – научим.

Подготовка

Понимая, что кандидаты на подобную должность могут быть вообще «нулевыми», что меня совсем не устраивает, было решено задавать всем три контрольных вопроса, позволяющих приблизительно выяснить уровень знаний кандидата. Учитывая специфику проекта (надо очень хорошо ориентироваться в ООП, очень много собственных элементов управления), были подобраны следующие вопросы:

1) Какие модификаторы доступа к членам класса Вы знаете? Чем друг от друга отличаются Public и Private?

2) В чем разница между override и overload?

3) Зачем нужны ключевые слова as и is? Где и как они обычно используются?

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

Естественно, я не хотел принимать кандидата на работу только за то, что он ответил правильно на три вопроса, которые можно спросить у папы-программиста. Поэтому мною было разработано тестовое задание: создать экранную клавиатуру, которая могла бы привязываться к любому объекту типа TEdit и позволяла бы вводить в него символы. Я составил техническое задание, после чего выполнил тест. На это у меня ушло 40 минут. Кандидатам я решил давать полтора часа.

Затем были сформированы следующие требования к выполнению тестового задания:

·Кандидат должен выполнить тестовое задание за 1,5 часа или меньше;

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

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

Поиск кандидатов

Поиск кандидатов велся по четырем направлениям:

1) Размещение вакансии на сайтах типа job.ru;

2) Размещение вакансий на специализированных форумах для программистов и на форумах институтов;

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

4) Поиск резюме на сайтах работ типа job.ru.

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

Например, адрес электронной почты кандидата.

Такие адреса электронной почты мне не нравятся:

lenkagirl@somedomain.com – в конце-концов, детство кончилось, мы кажется ищем работу и «ленкагёл» – как-то это не по-деловому.

zombiekill@somedomain.com – для друзей такой адрес может быть и подойдет. Но для работодателя – вряд ли. Кто скрывается за подобным адресом? Не знаю, но мне кажется, что он мне не понравится.  

А вот этот адрес меня сразу же зацепил:

soapwithoutcord@somedomain.com – сразу видно, что человек может грамотно написать по-английски три слова, что тоже не часто встречается. Кроме того, получилось какое-то интересное сочетание. В итоге я решил пригласить этого кандидата на работу, и, поверьте, я не ошибся.

Конечно, я смотрел не только на адрес электронной почты, но и на структуру резюме, про себя отмечал грамотность русского языка (если человек поленился проверить собственное резюме в Word, как он будет относиться к своему коду?), указанные навыки. Не стоит приглашать на собеседование кандидата, который написал в резюме вместо Delphi – «Delfi». Стыд и срам – не уметь писать название инструмента, с которым приходится работать!

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

Следует отметить, что запросы кандидатов очень неравномерны и зачастую не подчиняются никакой логике: можно найти студента 4-го курса, который готов работать три полных дня в неделю, неплохо разбирается в программировании и согласен на заработную плату $200 в месяц, а можно найти студента, который вообще ничего не знает, не может ответить ни на один вопрос и при этом имеет зарплатные ожидания 600 долларов в месяц на испытательный срок.

В итоге требования к кандидатам при проведении телефонного собеседования стали следующими:

1) Кандидат четко может объяснить разницу между модификаторами доступа private и public, а также приводит примеры использования этих модификаторов;

2) Кандидат отвечает либо на вопрос про override и overload (что предпочтительнее), либо про as и is;

3) Кандидат демонстрирует общую вменяемость при разговоре по телефону;

4) Кандидат согласен с условиями работы, которые оглашаются ему в кратком варианте.

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

Как показал опыт, не стоит проводить долгих бесед с кандидатом до написания тестового задания. Поэтому собеседования проходили следующим образом: я встречал кандидата, вкратце рассказывал ему о схеме нашей беседы (не более 10 минут), а затем предлагал выполнить тестовое задание.

Результаты выполнения задания оказались еще менее утешительными: только 20% кандидатов хоть как-то справились с задачей, при этом 50% из них приходилось выделять дополнительное время, чтобы увидеть хоть какой-то результат. Идеально задание не выполнил никто. Всем кандидатам я по возможности показывал, как можно оптимизировать код, сделать его более понятным и читаемым.

С наиболее сильными программистами сразу же начинался третий этап собеседования, на который по возможности приглашалось руководство компании. Разговор обычно шел о жизни, я задавал коварные и не очень вопросы, и мы окончательно утрясали условия работы. Следует отметить, что на этом этапе собеседования я прежде всего задавал себе вопрос: «а насколько комфортно мне будет работать с этим человеком?», а потом уже вспоминал про профессиональные качества кандидата.

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

Выводы:

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

2) По моему мнению, каждый руководитель проекта должен быть немного психологом. Поэтому я считаю, что при наборе команды не стоит прибегать к услугам менеджеров по персоналу. Вы формируете новую команду, вы формируете ВАШУ команду, вы выбираете, с кем будете работать бок о бок долгое время. Вам будет из кого выбрать, не стоит забывать, что спрос в данном сегменте сильно превышает предложение. И если человек выполнил все тестовые задания идеально, но вы ощущаете, что вам неприятно будет с ним работать – не берите такого кандидата. Вы должны ощущать 100% уверенность, что этот человек нужен вам.

3) Смотрите не только на результат выполнения тестового задания, но и на то, какие методы и подходы использует кандидат. К примеру, я взял на работу стажера, который справился с тестовым заданием на 30%. При этом я видел, что данный кандидат путается в языках, зачастую используя конструкции из C++,  однако то, как он работал с клавиатурой: быстро, профессионально, часто использовал «горячие клавиши» и т.д., говорило об опыте работы с Borland C++ Builder. Этого хватило, чтобы понять, что данный кандидат без проблем улучшит свои знания в Delphi. Я не ошибся. Вывод: будьте гибче в своих оценках. Не стоит оценивать кандидатов только по результатам тестового задания. Ведь иногда бывают и исключения.

4) На собеседовании следует объяснить кандидату, почему предлагаемые начальные условия несколько ниже рынка. Необходимо мотивировать его.

Я видел компании, которые набирают младших программистов, однако специальная программа для работы со стажерами отсутствует. Новичкам предлагаются книжки, по необходимости (при инициативе стажера) могут быть получены консультации от более опытных коллег. Через какое-то время такому сотруднику начинают ставиться несложные задачи. Если задачи выполняются – компания считает, что стажер успешно обучается. Все бы хорошо, но, поскольку нет отработанной программы обучения, то сотрудник осваивает все самостоятельно. Конечно, это работает. Но как…

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

«Так вот, мы предлагаем стартовую зарплату ниже рынка, потому что мы обучаем кандидата. Мы работаем с ним много и плотно. Мы заинтересованы в повышении его профессионального уровня», – примерно такой должна быть мотивационная речь.