Интервью с руководителем
отдела разработки

Интересные задачи,
этическое лидерство
и performance review

Александр Субботин
sasha-subbotin-image
Интервью с руководителем
отдела разработки
Интересные задачи, этическое лидерство и performance review
Российское IT-сообщество пережило немало изменений за прошедший год: кардинальная смена курса развития продуктов, стека технологий и даже процесса рекрутинга. И Content AI не стала исключением.

Мы поговорили с руководителем отдела разработки Александром Субботиным и узнали, какое сейчас у команды стратегическое направление работы, как удается мотивировать разработчиков и насколько сильно поменялась ситуация с наймом на российском IT-рынке.

— Расскажи, чем ты занимаешься в Content AI.
— Как руководитель разработки, я отвечаю за выстраивание процессов работы команды — от подбора новых специалистов и code review до архитектуры продуктов. Также вместе с продакт-оунерами мы определяем стратегические направления в разработке продуктов, долгосрочные цели и состав команд для реализации поставленных задач.

Кроме того, немаловажную роль в моей работе играет и поддержание мотивации сотрудников, ведь помимо возможности решать интересные задачи, разработчикам важно понимать пути развития в своей области и получать открытую обратную связь. Для этого я разрабатываю систему performance review, которую запустим уже совсем скоро и будем проводить раз в квартал или полгода.
— Что она из себя представляет?
— Для каждого разработчика создается индивидуальный карьерный план, основанный на оценке компетенций, фидбеке коллег и продакт-менеджера, а также на его собственном видении и желаниях. Карьерный план — это некое руководство к действию на ближайшие полгода-год и задел на долгосрочную перспективу.

При составлении карьерной стратегии планирую применять коучинговую модель: я прихожу к разработчику с фидбеком от коллег, естественно, учитывая субъективность оценки, а также со своими рекомендациями и видением, а он уже сам принимает решение, какой путь ему ближе и интереснее.
— Как устроена структура отдела?
— Разработка поделена по продуктам и работает по упрощенной scrum-методике: плоские команды без тимлидов, тестировщики входят в состав технических команд. Такой формат дает больше свободы действий, но и накладывает дополнительное требование к активности и автономности самих разработчиков. Работу команды мы оцениваем по двум показателям: достигаются ли в срок задачи спринта и складываются ли они в конечные продуктовые цели.

Как правило, полномасштабных переходов из одной команды в другую нет, но в зависимости от целей спринта разработчики могут подключаться к работе над другими продуктами.
— Как определяются и распределяются задачи между командами?
— У нас есть два вида планирования. Первое — регулярное, на следующий спринт. Здесь мы обсуждаем, какие задачи предстоит сделать, детально их оцениваем и играем в planning poker. Второе — backlog grooming. Здесь мы разбираем входящие запросы из техподдержки от наших клиентов, обсуждаем технический долг и определяем шаги развития продуктов в перспективе.

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

Так, например, мы начинаем разработку следующих версий продуктов на Qt/QML, и, кстати, набираем разработчиков со знанием этого стека. Если говорить о базах данных, то больше внимания уделяем PostgreSQL, поскольку его присутствие на российском рынке становится все более значимым. В разработке backend-сервисов портируем код с .NET Framework и С++ на кросс-платформенный .NET Core.

Кроме того, у нас есть и большой фронт внутренних инфраструктурных работ. К примеру, за последний год мы перешли с Microsoft Azure на свою локальную инфраструктуру.
— Расскажи про найм разработчиков. По твоим ощущениям, насколько ситуация на рынке изменилась за прошедший год?
— Я бы сказал, что сфера найма на российском IT-рынке за последний год стала более динамичной, при этом ни у кого до конца не сложилось ее цельного понимания. Одна часть компаний и разработчиков релоцируется, другая — остается и продолжает работу именно в России, поэтому сделать какой-то конечный вывод довольно сложно.

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

В пожеланиях разработчиков к работодателям, в свою очередь, особых изменений не произошло. По-прежнему важны интересные задачи, общий технический уровень, приятная атмосфера в коллективе, стиль управления и корпоративная культура. По этой причине я уделяю особое внимание этическому лидерству, при котором учитываются разные мнения, выслушиваются все аргументы и идеи, а взаимодействие внутри команды — конструктивное.
— Как проходят твои собеседования с кандидатами?
— Для меня собеседование — это комплексная оценка hard и soft skills кандидата, по итогу которой я могу сказать, насколько он подходит команде. Нет какого-то одного пункта, на который я смотрю в первую очередь, но базовые знания нашего стека, естественно, дают некую фору.

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

Если говорить о личных наблюдениях, вынесенных из сотни проведенных интервью, то меня не перестает восхищать честность в отрасли. Во время собеседования разработчики не пытаются приукрасить свои навыки или выдать чужую работу за свою, на дополнительные вопросы отвечают открыто и проявляют желание поделиться своим опытом.
— Какими компетенциями должен обладать сильный разработчик?
— Если говорить о hard skills, то такого разработчика отличают глубокие знания своего фреймворка, основного языка разработки и стека, широкий технический кругозор, помогающий мыслить на архитектурном уровне и найти лучшее решение задачи. Также важно уметь аргументировать свой код, иметь навыки code review и дебага.

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