Алло, мы ищем таланты, или Как создать команду мобильной разработки с нуля
Академия «Туту.ру»: если нужных специалистов не сыскать днём с огнём — нужно вырастить их у себя.
Иллюстрация: Wikimedia commons / Colowgee для Skillbox Media
Осенью позапрошлого года перед руководством «Туту.ру» встала нетривиальная, по нынешним временам, задача. Число клиентов возросло настолько, что в кратчайшие сроки потребовалось принять в штат фактически несколько команд мобильных разработчиков, пишущих под iOS и Android.
Стандартной схемы поиска готовых айтишников через службу HR было явно недостаточно — слишком масштабным был проект и слишком сжатыми сроки. Но решение, чем дополнить эту схему, нашлось. Причём задействованы в нём были не только рекрутеры, но и ведущие специалисты компании, а также все известные онлайн-школы, самые популярные платформы для хедхантинга и даже собственный телеграм-канал. Вот как это было.
Шаг первый
Придумать IT-академию
На первый взгляд, ситуация складывалась патовая. Хорошие специалисты — в любой отрасли «товар» штучный; для российских IT-компаний, с учётом оттока кадров, это актуально вдвойне. Чтобы закрыть даже одну вакансию, иногда требуется до полугода — а тут сразу такое количество и одновременно!
Станислав Цыганов
Руководитель отдела мобильной разработки «Туту.ру».
Кадровый голод в нашей отрасли давно стал общим местом: по большому счёту правила на рынке труда в IT диктует работник. У разработчиков невероятно высокие ожидания от работодателя; отдельная тема — смогут ли они встроиться в команду, принять стандарты работы компании.
С другой стороны, IT сейчас в моде. Десятки университетов и онлайн-школ ежегодно выпускают тысячи специалистов — и здесь рынок безраздельно принадлежит работодателю. На этом парадоксе мы и решили сыграть.
Нашей целью было выбрать лучших из новичков. То есть наиболее перспективных, талантливых и, что важнее всего, — «заряженных».
Не секрет, что IT — чуть ли не самая высокооплачиваемая отрасль в России, и многие приходят в неё только за этим. Деньги действительно не проблема — но голой финансовой мотивации зачастую оказывается недостаточно для нормального профессионального развития. Нам требовались те, кого интересует что-то помимо собственного кошелька.
Тем более релевантный опыт в нашей компании уже был: случалось, и не раз, что ребята приходили к нам сразу после университета — и за год-два дорастали до сеньорских и лидерских позиций.
Вместе с рекрутерами и лидерами команд мы составили что-то вроде бизнес-плана, оценили финансовые риски. Для каждого из направлений нужно было выделить в качестве ментора кого-то из ведущих специалистов. Причём на подготовку новичков у менторов, скорее всего, должно было уходить практически всё рабочее время. Понятно, что для компании это довольно дорогая история. Однако, сравнив эти риски с издержками при стандартном найме кандидатов, мы пришли к выводу, что они примерно сопоставимы. В общем, решение было принято.
Евгений Суханов
на тот момент — тимлид iOS-платформы «Туту.ру», один из соавторов и выделенных менторов проекта.
Вкратце идея будущей IT-академии описывалась так: взять совсем свежих выпускников, где-то за полгода обкатать их до уровня мидлов и адаптировать в уже существующих командах.
Стас взял на себя бизнес-процессы, оргвопросы, финансы и маркетинг, а мы, менторы, отвечали за техническое оформление проекта.
Для каждой платформы понадобился своеобразный «учебный план», который позволял бы новичкам максимально быстро и эффективно «вкатиться» в команды, адаптироваться к нашим корпоративным стандартам и специфике работы.
Кроме того, нужно было довольно серьёзно адаптировать саму процедуру собеседований — для людей с нулевым опытом она была не совсем такой, как для более-менее опытных IT-специалистов.
Примерно через месяц теоретическая база проекта была готова, оставалось внедрить его в жизнь. То есть отобрать кандидатов на первый этап, а потом за пару недель провести чуть больше сотни собеседований.
Шаг второй
Провести собеседования
Первым делом Станислав Цыганов провёл мониторинг открытых учебных программ всех ведущих онлайн-школ в IT, выбрал подходящие по тематике, обратился к руководителям с предложением: «Туту.ру» готова пригласить на стажировку лучших из выпускников. Те с радостью согласились: какое из учебных заведений откажется трудоустроить своих студентов у одного из лидеров отрасли?
Параллельно Станислав разместил соответствующие вакансии в корпоративном телеграм-канале и на основных рекрутинговых сайтах Рунета — то есть участие в конкурсе могли принять даже самоучки.
Квалификация, которую сулили студентам учебные платформы, поначалу впечатляла.
Станислав Цыганов
Познакомившись с учебными планами онлайн-школ, я был приятно удивлён: теоретически их выпускники по своему уровню должны иметь грейд как минимум мидла, а местами — чуть ли не готового сеньора. Реальность, как это обычно бывает, слегка отличалась от мечты.
Как выяснилось, обучение заявленным в планах скиллам чаще всего сводилось к интернет-лекциям экспертов (к слову, в большинстве случаев действительно высокого уровня), которые каждый из студентов осваивал в меру своих способностей и заинтересованности.
Довольно быстро мы пришли к выводу, что подход ко всем кандидатам, вне зависимости от диплома (и даже при его отсутствии), должен быть одинаковым. Нужно смотреть не на то, чему его обучали, а на то, что он умеет.
В соответствии с этими соображениями мы построили программу собеседований:
- Демонстрация кандидатами своего кода.
- Защита проектов.
- Оценка софт-скиллов: обучаемости, умения работать в команде, лидерских качеств и так далее.
Учитывая небольшой опыт кандидатов, мы не предъявляли высоких требований к их проектам: годилась любая разработка, сделанная для другой компании, собственный пет-проект или даже учебное задание. Главное — чтобы в нём было два экрана: первый — с «фидом», табличным интерфейсом из Сети и каким-то хранилищем; второй — с деталями определённой сущности. Например, если на первом экране были новости, то при нажатии на одну из них она должна была открываться на втором экране, чтобы можно было посмотреть, как она свёрстана, как автор умеет работать с навигацией и так далее.
Евгений Суханов
Второй этап был, по сути, открытой дискуссией с кандидатом. Мы смотрели, какие шаблоны он использовал в проекте, какие типичные ошибки совершает, как он понимает те или иные конструкции языка и платформы, какими фреймворками владеет. Основной нашей задачей было понять, насколько осознанно сделан проект. Мы спрашивали: «А зачем вот эта строчка? А что изменится, если её убрать?» — и так далее.
Попадались вроде бы красивые проекты, которые автор сам не до конца понимал. То есть, по сути, это были слепо скопированные компиляции чьих-то готовых решений. И наоборот — встречались задания, пусть местами и кривовато сделанные, но, что называется, выстраданные.
Станислав Цыганов
К нашему удивлению, зачастую в своих проектах лучше разбирались люди с минимальным, на первый взгляд, образованием или вообще самоучки. Кто-то пришёл из смежных айтишных профессий вроде 1С-разработки или IT-рекрутмента. Или вообще из других областей: до прихода в «Туту.ру» кто-то работал фотографом, кто-то — помощником руководителя. При этом они разбирались в IT куда лучше, чем некоторые дипломированные отличники. Как я уже говорил, мотивация решает всё.
Дмитрий Кодрян
в настоящее время — мидл-разработчик приложений под iOS. До стажировки был профессиональным фотографом.
О проекте академии «Туту.ру» узнал из объявления на hh.ru. До этого с IT связан не был. Работал фотографом, периодически задумывался о смене рода деятельности. Решающим фактором и главным побуждающим мотивом стал, конечно же, ковидный локдаун, когда оставаться в прежней профессии, по понятным причинам, стало довольно затруднительно.
Сидя на карантине, начал изучать iOS-разработку. Решил не поступать в университеты и не прибегать к готовым обучающим программам, так что я — в чистом виде самоучка. Первые три месяца ходил в интернет как на работу или, вернее, как в университет: каждый день не меньше восьми часов читал статьи, решал примеры, смотрел что-то на YouTube и так далее.
Перед первым и даже перед вторым этапом немного волновался: всё-таки это было моё первое собеседование в IT. Однако всё сложилось немного легче, чем я представлял, а тестовые задания оказались даже чуть проще, чем те, к которым я готовился.
Тем не менее всё равно не был до конца уверен, что в итоге пройду: всё-таки конкурс был большой. К счастью, в итоге я стал стажёром академии.
Алексей Червинский
Android-разработчик. Перед началом стажировки — QA-инженер в Сбербанке, студент ВШЭ по специальности «Программная инженерия».
Сразу после университета разместил своё резюме на нескольких платформах, в качестве проекта представил свою дипломную работу. Как ни странно, вскоре работодатели начали откликаться :)
Поначалу ходил на собеседования, что называется, «на уверенности», нисколько не сомневаясь в своих программистских навыках. К моему удивлению, первые два интервью были абсолютно провальными: выяснилось, что умение кодить — это одно, а навык правильно подать свои скиллы, без запинок ответить на разные вопросы с подковырками, которые задают тебе опытные специалисты, — совсем другое.
Вовремя внёс коррективы в свою «переговорную стратегию», и третье собеседование прошло уже успешно. Так я стал тестировщиком в «Сбере».
Через некоторое время мне позвонила HR-специалист «Туту.ру» — её тоже заинтересовало моё резюме. Задала несколько вопросов об учёбе, опыте работы, обо мне в целом — и пригласила на техническое интервью. Там требовалось представить и защитить какую-нибудь из своих разработок — как вы догадываетесь, в её качестве у меня выступала всё та же дипломная работа. Это было, наверное, самое углублённое собеседование в моей жизни: спрашивали по Android, по языку Kotlin, на котором я пишу, — в общей сложности задали не меньше 40 вопросов. Зато третий этап — знакомство с руководителями и интервью по моим софт-скиллам — прошёл гораздо легче.
Александра Мельникова
мидл-разработчик приложений под iOS. До стажировки работала в коммерческой фирме, окончила университет по специальности «математик-экономист».
В университете я училась по специальности «Математические методы в экономике» на кафедре «Математика и компьютерные науки»: изучала С, С++, выполняла какие-то прикладные задачи. Честно говоря, уже тогда программирование мне нравилось гораздо больше, чем экономика.
После универа какое-то время поработала в банке, потом перешла в коммерческую фирму, но всё это время мечтала о программировании. В какой-то момент я решила кардинально изменить свою жизнь и попробовать себя в IT. Поначалу занималась сама: смотрела обучающие ролики, что-то читала в интернете. Чтобы как-то структурировать своё обучение и придать себе дополнительной мотивации, в конце концов купила курс на SwiftBook. Это действительно подстегнуло: освоение знаний пошло гораздо быстрее.
Окончив курс, я уволилась с работы и решила заняться поиском новой. Один из преподавателей предложил программу: в течение двух недель нужно было сделать тестовые задания, а потом предстоял их подробный онлайн-разбор командой «Туту.ру», которая как раз набирала новичков на стажировку. Моё задание оказалось в числе лучших. Написала Стасу и получила приглашение на техническое собеседование — там мне нужно было подробно презентовать моё тестовое.
Поначалу сильно волновалась, готовилась, даже просматривала специальные ролики на YouTube на тему «как пройти первое собеседование в IT». В жизни всё оказалось не так страшно: мои интервьюеры были доброжелательны, учитывали, что мы новички, и старались не особо лезть под кожу. Скорее наоборот: большая часть вопросов были наводящими, как будто собеседующие подсказывали, в какую сторону думать.
Шаг третий
Организовать стажировку
После собеседований счастливчиков, которые успешно прошли кастинг, разделили на две команды: iOS и Android. У каждой команды был свой ментор и свой большой проект, который предстояло делать всем вместе.
Станислав Цыганов
Изначально для каждой команды на проект выделили от трёх до шести месяцев. Причём мы не планировали, что у этих проектов в дальнейшем будут какие-то коммерческие перспективы: главное — чтобы новички разобрались, как всё работает.
Мы взяли модуль, разложили его на подмодули, чтобы каждый из стажёров мог попробовать себя в разных ролях, познакомиться с архитектурой, «причесать» свои представления (которые изначально у всех, понятное дело, разные) под наши стандарты табличного интерфейса, загрузки, кэширования и так далее.
Работа в такой «песочнице» — прекрасное время для стажёров: можно косячить, у работодателя — огромный кредит доверия к тебе, есть возможность подтянуть недостающие скиллы. С другой стороны, и для нас это были приятные времена: с новичками всегда интересно работать, смотреть, как горят их глаза, наблюдать, с какой бешеной скоростью они растут.
Конечно, и здесь есть свои риски: мы держали в голове, что некоторые из них могут подсознательно бояться ошибок — и поэтому искусственно растягивать цикл обратной связи, вываливая потом на ментора тысячи строк кода. Соответственно, мы исходили из правила: чем чаще будет фидбэк, тем он эффективнее. И уже на стажировке приучали к коротким пул-реквестам.
Евгений Суханов
С того момента, как были сформированы группы академии, на занятия с моими «подопечными» стало уходить до 80% рабочего времени; оставшееся было нужно, чтобы хоть как-то саппортить действующие команды.
Рабочий график тоже существенно изменился. Довольно быстро выяснилось главное отличие стажёра от джуна и тем более от мидла: стажёр задаёт на порядок больше вопросов :) Причём если встречи с джунами можно ввести в какое-то прогнозируемое русло, работа с новичками требует гораздо большей реактивности — на все вопросы желательно отвечать по мере их поступления.
Поэтому время стажировки мы условно разбили так: 60% рабочего дня стажёры занимаются непосредственно разработкой, 40% времени — «разбор полётов», общение, обучение, обсуждение, какие скиллы нужно подтянуть, какие учебники почитать и так далее.
Алексей Червинский
На первых порах интересно было сравнивать стажировку в «Туту.ру» с предыдущими местами работы. Раньше это выглядело так: тебя бросают в проект, и выплывай как хочешь. Получилось — молодец. Нет — ну что ж… значит, ты не вписался в рынок.
В «Туту.ру» же нас буквально водили за ручку. Каждый день начинался со стендапа, где ментор выяснял, как идёт работа и какие у нас сегодня планы. На пул-реквестах нам аккуратно указывали на ошибки, советовали, что почитать, что подучить. Причём не только ментор, но и однокашники. Это сплачивало и мотивировало.
Отдельных комплиментов заслуживает офис компании. Те, кто работал не на удалёнке, поражались, насколько там уютно: вместо обычных офисных стен всё оформлено в тематике путешествий и приключений, рабочие зоны чередуются с зонами отдыха. Не говоря о таких приятных бонусах, как кофе, печеньки и пятничные обеды всей компанией.
Дмитрий Кодрян
Чтобы быстрее втянуться в работу, выбрал для себя такой график: 2–3 дня в неделю работал удалённо и 2–3 дня — в офисе. Нашим проектом был полный рефакторинг профиля пассажира с текстовыми полями. Требовалось прописать все слои: сетевые запросы, хранение, интерфейсы, профили и так далее.
Поначалу всё казалось сложным и непонятным, куча времени уходила на ресёрч. Но каждый раз выяснялось, что неразрешимых задач нет: сильно помогало, что мы постоянно работали в команде, да и ментор всё время был на связи.
У каждого из нас было своё задание, время от времени нас ротировали. Постепенно нашу группу знакомили со всем коллективом «Туту.ру»: по мере выполнения заданий мы готовили презентации и выступали перед разработчиками.
Александра Мельникова
Я прошла академию быстрее всех: занятия начались в ноябре, а уже в феврале меня перевели в основную продуктовую команду.
Что особенно радует: рефакторинг, который мы делали, не остался закрытым пет-проектом для нашей «песочницы». Все наши разработки после некоторой адаптации пошли в продукт.
Шаг четвёртый
Адаптировать новичков для работы в команде
Согласно первоначальному замыслу, через три месяца после старта академии планировалась «точка отсечки»: день, когда стажёры, которые очевидно «не тянут», покидают проект. К удивлению и радости авторов, этот день так и не настал: студенты академии оказались настолько способными и старательными, что отчислять никого не пришлось.
Более того: оба студенческих проекта были завершены досрочно и всех выпускников перевели из «песочницы» в действующие продуктовые команды, где всё уже было по-взрослому.
Станислав Цыганов
После «курса молодого бойца» наши стажёры получали оффер и начинали полноценную работу в настоящей кросс-функциональной команде: им нужно было декомпозировать задачу в явном виде, давать оценки, синхронизироваться с дизайном, платформой и бэкендом. За первые три месяца они научились работать, теперь им нужно было научиться работать в коллективе.
С удовольствием могу сказать, что и на этом этапе не отсеялся ни один из соискателей, чего мы поначалу даже не могли предположить.
Александра Мельникова
Поначалу, конечно, было непривычно. После небольшой группы из четырёх человек, где все начинающие кодеры и друзья, нужно было переходить в большой коллектив, искать общий язык с дизайнерами, бэкендерами, службой информационной безопасности и встраивать свою работу в единый сложный процесс.
В этом мне очень помогает компания. Здесь очень трепетное отношение к персоналу. В «Туту.ру» тщательно следят, чтобы у всех работников был оптимальный баланс между работой и отдыхом.
Алексей Червинский
Мне очень нравится корпоративная культура «Туту.ру»: чёткая, деловая, но без излишней муштры. Не то что в банке, где ты всё время под прицелом телекамер, каждый отход с рабочего места нужно согласовывать с начальством, а за невыключенный комп или оставленную флешку могут и премии лишить. Здесь такого нет, зато есть очень симпатичная система мотивации. В частности, я был приятно удивлён, когда сразу же после стажировки получил небольшой бонус за новую разработку.
Дмитрий Кодрян
С каждым днём непонятных вопросов становится меньше, а уверенности в своих профессиональных навыках — больше. Особенно приятно, когда это подтверждается карьерным ростом. Даже не предполагал, что так быстро дорасту до мидла.
Шаг пятый
Подвести итоги
Как видим, эксперимент оказался удачным. Так что в ближайшем будущем его, скорее всего, возобновят и академия «Туту.ру» начнёт новый набор.
Станислав Цыганов
Результат превзошёл даже наши самые смелые ожидания: новички развивались гораздо быстрее, чем мы предполагали. Отдельным сюрпризом стало то, что проекты для стажёров, которые мы изначально планировали как чисто учебные, нашли своё коммерческое применение. Стажировка прошла прекрасно. Так что мы с высокой вероятностью повторим этот опыт. Но есть и ограничения — таким путём, очевидно, невозможно получать готовых сеньоров. Так что стандартный способ найма тоже никто не отменяет.
Александра Мельникова
Переход в IT — новая веха в моей жизни, и мне нравятся перемены, которые в ней происходят. Во-первых, стало гораздо больше свободы: я могу путешествовать, менять место жительства, работать из любой точки мира. Во-вторых, IT — это постоянное движение. Нужно всё время не только думать о своём коде, но и следить за новинками, изучать юзабилити, тот же дизайн… В общем, мозг должен работать постоянно и развиваться во всех направлениях :).
Возможно, тем, кому нравится ехать по накатанной колее, такая жизнь не подойдёт. Но если вам по душе бурная жизнь, где всё время сталкиваешься с чем-то новым — добро пожаловать в клуб!