Мы решили узнать, какому сотруднику будут сильнее всего рады в IT-компании, какими знаниями и умениями он должен обладать. Правда ли, что джунам не попасть в IT на хорошую позицию, а миддлам открыты все дороги? Что важнее — идеальное знание HTML или общительность? Как нельзя вести себя на собеседовании и что ждет студентов после практики?
Ответить на эти вопросы нам помогла Юлия Суворова, руководитель продуктового департамента компании Level.Travel — крупнейшего в России сервиса по покупке и бронированию туров.
За последние несколько лет команда разработки Level.Travel выросла в несколько раз. Конечно, такой рост невозможен без настройки процессов и развития менеджмента, поэтому для нашей компании краеугольным стал вскоре вопрос: «Где и как быстро нанять столько людей?».
Существуют различные точки зрения на то, каких специалистов лучше нанимать: джунов, миддлов, синьоров. У каждого грейда свои плюсы и минусы.
Синьоры. Так, синьоры могут сразу начать приносить команде максимум пользы и не требуют значительных вложений после того, как выходят на работу. Однако на их поиск, найм и вывод на работу тратится очень много ресурсов. К тому же понимание набора скиллов, который необходим на высоком уровне квалификации разнится от компании к компании. Нам бывает трудно найти человека, который органично впишется именно в наши процессы и особенности, без необходимости глобально перестраивать своё сознание и набирать дополнительные скиллы.
Миддлы. С миддлами работать довольно комфортно. Они быстро начинают приносить ощутимую пользу для продукта, при этом есть куда расти, и они это знают. Конечно, им всё ещё требуется техническое лидерство, чтобы избежать потенциальных проблем в сложных задачах, например в проектировании архитектуры систем. Процессы кросс-ревью и просто возможность посоветоваться с кем-то помогут им избежать ошибок. Если миддл остаётся единственным бойцом — не факт, что он сможет эффективно справляться с возложенными на него задачами и динамично развиваться как специалист. Поэтому важно, чтобы рядом был более опытный коллега.
Джуны. И, наконец, джуны. Рынок перенасыщен джунами: начинающими специалистами без опыта коммерческих проектов и фундаментальных знаний. Причина связана с низким порогом входа в профессию через онлайн-курсы. Поэтому для IT-компаний огромный пул джунов — это не только возможность быстро набрать рабочие руки, но и головная боль по поиску перспективных, которых эмпирически набирается не больше 10-15%. То есть найм джунов по стоимости сопоставим с наймом синьоров, при этом джуны после выхода на работу требуют инвестиций. Им необходимо менторство, пристальное ревью их работы, они банально в силу недостатка знаний и опыта могут заниматься далеко не любыми задачами.
Зачем компании джуны
Мы в Level.Travel, понимая особенности найма разработчиков различных грейдов, в 2020 году сделали ставку на джунов. Оказалось, что у нас в компании для этого сложилась идеальная ситуация:
- У нас есть выстроенные процессы разработки. У каждой компетенции — дизайна, тестирования, разработки, менеджмента — есть прописанные регламенты, автоматизированный сбор статистики для анализа эффективности работы, воркфлоу в Jira, процессы аттестаций для перехода на следующие грейды, документация в wiki. У нового человека с любым уровнем подготовки будет достаточно вводных, прочитав и осознав которые, он поймет, как мы работаем.
- Наши продукты — это платформенные решения. У нас развитая и документированная архитектура, которая даёт возможность безболезненно отчуждать отдельные части работы и целые микросервисы, которые легко дать на проработку менее опытным сотрудникам.
- Мы наладили процессы тестирования и код-ревью. Старшие специалисты и QA-инженеры сопровождают разработку абсолютно каждого проекта в каждой команде, ни одна фича не выходит в прод без соответствующего тестирования, ревью и документирования. Для джунов это возможность не бояться совершать ошибки и учиться на них без критического ущерба для бизнеса..
- Мы много внимания уделяем задаче минимизации технического долга. Естественное желание бизнеса — постоянно инвестировать в рост: в новые фичи, развитие продуктов и даже запуск новых направлений. Однако этот рост должен базироваться на устойчивых технических решениях. Мы стараемся найти время для таких задач как рефакторинг фронтэнда для упаковки в React Storybook или для подключения новых библиотек, покрытие проекта юнит-тестами, распиливание Ruby-монолита на микросервисы, создание базы e2e тестов. Тут нам и пригодятся джуны. Для них это возможность поработать с готовым кодом и готовыми продуктами, прежде чем приступать к созданию своих собственных. .
- У нас много миддлов, которые хотят превратиться в синьоров. Помимо хард-скиллов, для синьора важный набор компетенций — это всё, что связано с менторством. Появление джунов в команде даёт возможность средним специалистам структурировать и систематизировать свои знания в процессе передачи их младшим, а значит, и самим вырасти. Попутно они ещё и создают базу знаний, описывая свои наработки в документации.
Таким образом, мы инвестируем не только в личное и профессиональное развитие младших специалистов, но и в развитие продукта и остальных членов команды.
Откуда приходят начинающие
В 2020 году мы наняли 13 джунов. В данный момент в команде разработки 42 человека. То есть младшие специалисты составляют около 30%. В найме джунов есть две существенные проблемы: где их искать, и как отличить перспективного от бесперспективного. К нам приходят кандидаты из различных мест.
- Кто-то уже работал в IT-компаниях или отделах, но эти компании не могли похвастаться ни экспертизой, ни возможностями для роста. Обычно это не слишком успешные стартапы или госкорпорации. Также это могут быть компании, в которых есть IT-отделы, но которые по сути своей не являются IT-компаниями: ритейлеры, медиа, промышленность. В этих компаниях более «оффлайновая» культура и процессы, менеджмент придерживается не тех принципов, которые приняты в IT-среде, а значит для специалистов там недостаточно возможностей для роста. Это первый источник.
- Второй, и наиболее желанный для нас источник — университеты. В частности, мы активно сотрудничаем с МГТУ им.Баумана и каждый год приглашаем студентов пройти практику в нашей компании. Однако отбор достаточно жёсткий: это полноценное двухэтапное собеседование, при этом мы оцениваем как уровень знаний, так социальные навыки. Мы поступаем так потому, что успешным студентам после практики мы предлагаем перейти в штат и продолжить работу в команде. Плюс рекрутинга из университетов в том, что студенты обладают хорошей технический базой, достаточно усидчивы и органически готовы учиться и воспринимать новые знания. Однако, к сожалению, сейчас российские вузы не предлагают современных знаний ни по программированию, ни по ведению проектов, аналитике или тестированию, о прикладной составляющей образования тоже говорить не приходится. Так что всё, что связано с настоящей коммерческой разработкой IT-продуктов приходится набирать по ходу.
- Наконец, третий источник джунов для нас - онлайн-курсы. Это источник требует максимально внимательного рекрутинга. Мы сотрудничаем с Яндекс.Практикумом, через который к нам уже пришли несколько начинающих QA-инженеров. Обычно это люди, для которых IT-специальности становятся второй профессией. У них есть за плечами несколько лет работы, никак не связанной с IT. Чаще всего у них нет технического образования и фундаментального бэкграунда. Однако это взрослые люди, которые понимают, как функционирует коллектив, и при наличии собственной высокой мотивации могут быстро влиться в процессы и освоить новую область. Курсы дают общее интро в профессии, однако дальше всё зависит от человека. Чем старше человек становится, тем сложнее найти ресурсы, мотивацию и время на то, чтобы осваивать новую специальность. Поэтому рекрутинг с курсов даёт низкую конверсию в успешное прохождение собеседований: мы часто сталкиваемся с немотивированными кандидатами, которые недостаточно внимания уделяют погружению в фундаментальные знания. Однако те, кто проходит собеседование — это люди, совершившие в своей жизни по-настоящему осознанный выбор и готовые прилагать усилия к своему развитию.
Что нужно знать, чтобы успешно пройти собеседования в Level.Travel
Итак, как я уже писала, в нашей компании на работу попадают в лучшем случае 10-15% кандидатов, претендующих на начальные позиции. Почему такая конверсия? И почему к джунам предъявляются такие высокие требования? Какими качествами в принципе должен обладать человек, чтобы пройти собеседование?
Со специфичными всё достаточно очевидно. Это и есть те знания, которым обучают на профессиональных курсах, и которыми легко обрасти за небольшое время работы по специальности.
Так, у QA-специалистов мы интересуемся тем, какие типы тестирования знакомы кандидату. Чем регрессионное тестирование отличается от функционального? Как написать хорошие тест-кейсы? Для чего нужно нагрузочное тестирование и как оно проводится? Какие инструменты для тестирования API известны кандидату? Начинающий специалист может не иметь реального опыта работы с этими задачами, однако он должен разбираться теоретически, как это делается. Для нас это признак того, что он интересуется профессией и умеет учиться. А превратить теоретические знания в практический опыт — это уже наша задача.
Иногда для проверки специальных знаний мы даём небольшое тестовое задание, рассчитанное на начальный уровень понимания специальности. Например, тем же QA-специалистам мы предлагаем написать несколько тест-кейсов на существующие на сайте фичи, а также написать десятистрочный автотест на любом языке, проверяющий наличие контейнера в вёрстке на сайте.
Следующий, не менее важный для нас блок — неспецифичные IT-знания. Это общее понимание того, как работают современные цифровые продукты и системы. Без этого понимания, даже обладая специальными знаниями, невозможно работать с большим технологическим продуктом. В нашей компании никто не замкнут наглухо в своей специальности. Мы ищем максимально самостоятельных специалистов.
Например, QA-инженер должен не только уметь писать тест-кейсы и автоматизировать свою работу, но и уметь работать с UNIX в консоли, чтобы подключаться к сервисам и быстро совершать рутинные операции, делать SQL-запросы к базе, чтобы проверять качество данных. Наконец, без знания базовых основ программирования любая автоматизация тестирования превращается в неподдерживаемый код.
У разработчиков мы всегда проверяем знание алгоритмов и способность решать инженерные задачи. Это говорит о том, сможет ли человек принимать грамотные архитектурные решения. Ведь разработчики не просто пишут код, а строят продукты, которые должны не только решать прикладные задачи, но и быть оптимальными, максимально производительными и отказоустойчивыми.
Итак, какими базовыми техническими знаниями должен обладать человек, претендующий на работу в IT-компании?
- Общие знания о железе. Зачем нужна материнская плата? Что такое оперативная память?
- Сети и интернет. По каким протоколам передаются данные в интернете? Что происходит, когда загружается веб-страница?
- Основы программирования. Чем отличаются компилируемые языки от интерпретируемых? Зачем нужны объекты и классы? HTML, SQL — языки программирования или нет? Почему? Идеально, если у кандидата на не-программистскую специальность есть хоть какой-то опыт в программировании. У джуна-разработчика безусловно должно быть знание своего основного языка, но хорошо бы ориентироваться вообще в том, какие языки бывают и чем они отличаются друг от друга.
- Архитектура IT-систем. Что такое бэкэнд и фронтэнд? Если на сайте не работает форма отправки сообщения — где искать ошибки? Чем отличается архитектура веб-фронта и мобильных приложений, что у них общего? Что такое микросервисы? Что такое API и какие стандарты интерфейсов существуют? Какие бывают базы данных? Как туда попадают данные?
Без этих базовых знаний нормальная интеграция в работу в IT-продукте будет невозможна. Этот набор тем мы проходим абсолютно на всех собеседованиях всех специальностей, от менеджмента до аналитики.
Однако хард-скиллы — далеко не исчерпывающий перечень знаний, которыми должен обладать кандидат. Софт-скиллам мы уделяем не меньше внимания.
Во-первых, мы смотрим на общее понимание своей профессии. Мы обсуждаем, как кандидат видит своё развитие, чему планирует учиться. Интересно ли ему попробовать себя в смежных IT-специальностях и почему.
Здесь нам важно понять, не разочаруется ли джуниор в специальности через полгода, и насколько осознанным является его выбор. К тому же, уже на собеседовании полезно выявить склонности к смежным специальностям: если они есть, то у нас будет возможность предложить человеку альтернативный путь развития, если вдруг по какой-то причине с изначальной специальностью у него не сложится. Так, у нас есть позитивный опыт трансферов тестировщиков в продакт-менеджеры, а контентных менеджеров — в аналитиков данных.
Вторая софт-группа — это собственно коммуникабельность. Здесь нам важно понять, насколько легко человек интегрируется в командную работу. В нашей компании критически важна скорость принятия решений командой. Если человек склонен закрываться в себе и молча делать свои задачи, скорее всего у нас возникнут сложности.
Например, в жизни любого разработчика случаются этапы тестирования. И чаще всего этот процесс подразумевает много общения: тестировщик задаёт вопросы, что и как работает, иногда тестирование в принципе невозможно без непосредственного включения разработчика. Те же самые процессы происходят во время код-ревью. А самая интересная и ценная работа — создание новых фич и продуктов — это в принципе творческий и командный процесс. Поэтому мы обращаем внимание на то, насколько человек легок в общении и впишется в команду. И даже при наличии сильных хард-скиллов, если человек очевидно не достаточно коммуникабелен — это может стать основанием для отказа.
И, пожалуй, третье, самое важное, на что мы обращаем внимание, — это система ценностей кандидата. Недавно у нас был случай, когда на собеседование пришел кандидат, который объяснил свой переход в IT из логистики буквально так: «Давайте будем честны, тут же в IT никакого стресса и почти не надо напрягаться, а зарабатывать я буду в несколько раз больше, чем раньше». Этому кандидату мы отказали.
Мы берём на работу людей, которые мотивированы создавать новые полезные продукты, двигать отрасль и, в конечном итоге, и всё человечество вперёд в технологическое будущее, которые испытывают гордость за то, что являются инженерами, и готовы в этом развиваться. Эти ценности — основа нашей команды. Они помогли нам пережить кризисный 2020 год, и именно на них мы продолжаем растить и развивать своих специалистов.