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

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

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

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

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

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

Мы поговорили со стажёрами и наставниками ALD Pro и попытались разобраться, как это работает на практике.

Не учебная задача, а настоящий продукт

ALD Pro — корпоративная служба каталога и управления доступом на базе Linux. Она позволяет централизованно управлять пользователями, устройствами и политиками безопасности в крупных ИТ-инфраструктурах.

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

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

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

Именно это становится одним из первых открытий для самих стажёров.

«Я думал, что нам дадут просто рядом постоять, а нас по-настоящему сделали частью команды», — вспоминает Денис Мирошниченко, инженер отдела исследований и интеграции.

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

Так начинается переход от учебной разработки к инженерной работе.

Стажёра сначала нужно научить понимать задачу

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

Поэтому важный элемент стажировки в ALD Pro — системное погружение.

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

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

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

Обучение сразу связывают с практикой.

«Мне очень понравилось обучение, которое провели для нас в начале стажировки», — рассказывает Максим Сарафонов, инженер сектора управления инфраструктурой.

По его словам, стажёры разбирали работу Astra Linux как автономной системы, особенности работы операционной системы в составе домена ALD Pro на базе FreeIPA и разработку дополнительных параметров групповых политик. Теорию старались сразу переводить в практическую плоскость.

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

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

Наставник помогает понять логику решения

Даже хорошую программу подготовки дополняет работа наставника.

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

Новичку важно понять, что нужно исправить и почему опытный инженер вообще заметил проблему.

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

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

Именно в таких обсуждениях постепенно формируется инженерное мышление.

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

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

Функционально задача практически не изменилась. Изменилось понимание того, что означает «готово» в продуктовой разработке.

Наставничество — инвестиция в обе стороны

Такой подход требует времени.

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

В краткосрочной перспективе это дополнительные затраты команды. Со временем эти вложения дают накопительный эффект.

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

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

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

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

Университет даёт фундамент. Профессия появляется в работе

От стажёра в ALD Pro не ждут готового опыта коммерческой разработки. Наличие такого опыта во многом лишило бы стажировку смысла.

На старте особенно важны способность разбираться, задавать вопросы и постепенно становиться самостоятельнее.

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

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

По окончании стажировки многие ребята отмечали ценность возможности понять логику опытных инженеров. Почему они предлагают именно такое решение? Какие риски видят ещё до начала разработки? На что обращают внимание во время код-ревью? Именно из таких дискуссий и складывается профессиональное мышление.

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

Для компании это тоже полезный результат. Осознанно выбравший направление специалист быстрее растёт и постепенно может брать на себя всё более сложные задачи.

Вместо вывода

Хорошая стажировка должна быть частью реальной работы.

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

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

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

Для ALD Pro стажировка — способ находить будущих сотрудников, передавать инженерный опыт дальше и постепенно растить специалистов внутри реальной продуктовой разработки.

Материал основан на опыте команды ALD Pro. В других командах «Группы Астра» конкретные подходы к организации стажировок могут отличаться в зависимости от продукта и задач. Работа со студентами в любом случае остаётся вкладом компании в развитие будущих специалистов.