Frontend в ABBYY: SCRUM, брейнштормы, удаленка

Карьерный путь Константина развивался стремительно: он начинал с C# Developer, разрабатывая Backend больших корпоративных систем для госсектора, затем на аутсорсе успел поработать в разных проектах нескольких крупных международных организаций, а после стал руководителем группы разработки в российской ИТ-компании, откуда затем перешел в ABBYY.

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

Расскажи о своим карьерном пути и как ты попал в ABBYY.

Я успешно окончил бакалавриат и магистратуру Казанского авиационного института по направлению «прикладная математика и информатика». Но на втором-третьем курсе аспирантуры понял, что, как бы ни была интересна научная деятельность, все-таки это не то, чем бы мне хотелось заниматься в будущем.

Учебу в университете я с самого начала совмещал с работой. Сначала устроился сисадмином, затем ушел в программисты. Начинал с позиции Junior C# Developer, разрабатывал Backend для больших корпоративных систем для государственных учреждений. Затем я перешел в аутсорсинговую компанию, которая помогала специалистам находить работу за рубежом. За это время я не только поработал в разных международных компаниях (Microsoft, Amazon, Reddit и т.п.), но и узнал изнутри, как там устроены все процессы. Это был очень интересный опыт, который помог мне вырасти как специалисту. Но поскольку на аутсорсинг отдают небольшие и не очень долгосрочные проекты или их поддержку, спустя время мне захотелось заняться созданием масштабного продукта in-house.

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

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

А в начале года мне предложили возглавить Frontend-разработку в ABBYY. Предложение было очень интересным, и я согласился.

Что повлияло на твое решение?

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

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

В чем именно заключается твоя работа в ABBYY?

Ее можно разделить на три главных направления.

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

Второе – ведение одной из частей проекта, а именно разметки загруженных документов для нового облачного продукта, взаимодействие с дизайнерами, product и project-менеджерами. Поскольку мы сейчас в поиске тимлида на это направление, этот scope задач я выполняю самостоятельно.

Третье направление самое интересное, но пока ему, к сожалению, я могу уделить наименьшее количество времени. Оно касается технического консалтинга нового low-code/no-code продукта и Frontend-разработки компании в целом. Это помогает внедрять новые фичи, которые приносят клиентам пользу и удобство работы с продуктом, а нам – соответствовать трендам.

Сколько человек у тебя в подчинении?

В команде, которая занимается Frontend-разработкой облачной платформы ABBYY, 12 человек. Они делятся на три небольшие группы, у каждой из которых есть свой тимлид.

Как выстроено взаимодействие с ребятами?

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

Кроме того, у команды есть ежедневные созвоны, на которых я также присутствую и могу оперативно ответить на вопросы или дать обратную связь; раз в две недели мы созваниваемся для обсуждения проблем, которые возникли в предыдущем Sprint backlog; а во время внутреннего демо-frontend обсуждаем новые подходы или изменения, которые можно внедрить в проект, задаем вопросы и ищем вместе ответы.

На мой взгляд, мы хорошо сработались, даже несмотря на то, что все члены команды рассредоточены по всей России: Москва, Санкт-Петербург, Казань, Екатеринбург, Волгоград, Брянск.

Как задачи попадают Frontend-группе?

Мы работаем по SCRUM-методологии: планирование задачи, декомпозиция и распределение.

Сами задачи могут прийти как от любого разработчика, так и от product и project-менеджеров или UI/UX-дизайнеров. Мы вместе с тимлидами и дизайнерами их обрабатываем, устанавливаем важность и приоритетность, а также определяем, нужна ли дополнительная информация, и какие исследования нужны, чтобы приступить к работе.

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

Что входит в пул работы команды?

Как я уже упоминал, во Frontend-команде работают три группы.

Первая команда занимается общими компонентами. Другими словами, они разрабатывают визуальные элементы, которые переиспользуют остальные команды.

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

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

Задач много, они очень разные и требуют разной квалификации от ребят.

Откуда берете идеи и вдохновение для решения задач?

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

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

Что самое сложное в вашей работе?

Сам проект, которым мы занимаемся. Новый low-code/no-code продукт сложный со всех сторон: стек технологий, бизнес-задачи, алгоритмы разработки. Сейчас мало похожих решений, и многие составляющие приходится придумывать с нуля либо комбинировать с уже готовыми.

Предусмотрено ли у сотрудников развитие скиллов?

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

Раз в две недели мы проводим демо-frontend встречи, на которых обсуждаем текущие задачи, новости отрасли, делимся опытом. Все члены команды всегда в теме происходящего как внутри компании, так и во Frontend вообще.

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

Какими компетенциями нужно обладать, чтобы попасть к тебе в команду?

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

Как проходит отбор во Frontend-команду?

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

Подробнее о каждом этапе интервью рассказано здесь.

Есть ли открытые вакансии в твоей команде? Какие из них наиболее приоритетные?

Как я уже упомянул, сейчас мы ищем Frontend Team Lead, который будет отвечать за верификацию в новом облачном продукте. У такого кандидата, помимо технических скиллов, должны быть хорошо развиты и софт-скиллы, которые помогут в общении с product-менеджерами, а также в problem solving внутри группы.

Также в команду мы ищем: Frontend Developer (UI Components) и Senior Frontend Developer (Mobile Web Capture).

Учитывая темпы развития проекта, возможно, что в скором времени мы откроем вакансии для Junior-специалистов и будем нанимать стажеров. Так что следите за обновлением вакансий на сайте.

Чем увлекаешься в свободное время?

Мне нравится ходить в походы, в лес с палатками, ездить в горы и на рыбалку. Люблю быть наедине с природой, особенно без интернета.

Карьера

Подписка на обновления в блоге

Вы будете получать статьи на почту первыми

Ваша подписка прошла успешно!

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

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

Ваша подписка прошла успешно!

Читайте нас