Обложка статьи «6 лет в одной компании: путь от онтоинженера к продакту»

6 лет в одной компании: путь от онтоинженера к продакту

Егор Будников

Егор Будников, продакт-менеджер в ABBYY

Представьте, что вы устроились в интересную вам компанию на желаемую позицию. Прошло некоторое время — год, два, а может, больше — вы уже освоили многие навыки, влились в команду, погрузились в специфику бизнеса и, возможно, получили первое повышение. Вам нравится то, чем вы занимаетесь, но вам, вероятно, интересны и другие профессиональные сферы. Как понять, куда можно расти дальше? Какие доступные варианты такого роста могут быть в IT-компании?

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

Мой путь в ABBYY начался, когда я учился на 5 курсе МФТИ и думал, чем хочу заниматься. Я увлекался математикой и задачами по построению искусственного интеллекта, но при этом мне всегда было интересно, как устроены естественные языки и как можно научить машину понимать их. Поэтому в какой-то момент я заинтересовался компьютерной лингвистикой. ABBYY — мировой разработчик решений в области интеллектуальной обработки информации и лингвистики. Я принял участие в Дне открытых дверей ABBYY в МФТИ, решил за 2 часа несколько задач, и меня пригласили на вакансию онтоинженера.

Работа онтоинженером

Работа онтоинженера интересна тем, что она проектная и очень прикладная. Есть конкретная задача, которую нужно решить с помощью доступных технологий. Я начал работать в учебной группе: три месяца обучался, сдавал специальные экзамены по семантике, синтаксису и онтоинженерии. В информатике онтология — это попытка формализовать определённую область знаний. Онтоинженерия — это проектирование предметной области с помощью онтологий, описание структуры базы знаний, а также программирование на продукционном языке, который сконструировали в ABBYY. С помощью него описывается, как базы знаний должны наполняться из текстов. Наш отдел рос, задачи усложнялись, появлялось всё больше аналитических вопросов. В результате в департаменте обработки естественного языка (NLP) стали необходимы системные аналитики. Я на тот момент постоянно предлагал группе программистов что-то улучшить, упростить, сделать удобнее, автоматизировать тестирование. В итоге мне предложили роль системного аналитика — для меня это был горизонтальный рост. Я согласился, так как всё ещё искал себя (и сейчас ищу, на самом деле), и роль системного аналитика показалась мне перспективной. Мне казалось, что в качестве онтоинженера я уже сильно вырос: я участвовал во всё более сложных проектах с другими онтоинженерами, которые мне помогали. Пример такого проекта: технология для компании нефтегазового сектора, которая оптимизировала анализ отчётности со своих участков по всей стране. Каждый день в аналитический центр компании в Москве приходили сводки, которые анализировали несколько десятков человек. Я описывал онтологическую модель, с помощью которой технология извлекала из сводок нужную информацию.

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

Работа системным аналитиком

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

Роль системного аналитика была своего рода экспериментальная, поэтому в какой-то момент моя работа всё больше становилась похожа на работу продакт-оунера или продакт-менеджера, только с внутренними заказчиками. Так я стал продакт-менеджером в отделе обработки естественного языка департамента исследований и разработок. Чем отличается должность продакт-менеджера в технологическом департаменте от продуктового? В продуктовом департаменте общаются с внешними потребителями, а в технологическом — с внутренними. Это могут быть менеджеры продуктовых департаментов или внутренние пользователи, которые занимаются проектной деятельностью для внешних заказчиков (онтоинженеры). В то же время у меня оставались задачи системного аналитика. Я формулировал для программистов требования бизнеса, которые мне передавал продуктовый департамент. В мои обязанности также входило обсуждение этих требований и формулирование конкретных технических требований для группы разработки в технологическом департаменте. Если ты, будучи аналитиком или продакт-менеджером, умеешь программировать, тебе будет гораздо проще. Это даст понимание того, чем занимаются программисты, а также как декомпозировать и измерить задачу.

Работа продакт-менеджером

Спустя год моя роль снова поменялась. Сейчас я продакт-менеджер, но уже отвечаю за продукт, точнее его отдельную часть, связанную с NLP. Это ещё одна новая роль для меня, в которой я продолжаю находиться внутри большой команды, глобально ответственной за одно направление, но теперь я ближе к маркетингу и заказчикам. Моя задача — создание продукта для внешнего пользователя. Так как я отвечаю не за отдельный продукт, а за компонент (у общего продукта есть директор), одна из задач — сделать так, чтобы продакт-менеджеры всех отдельных компонентов примерно одинаково понимали то, как должен развиваться продукт. Нужно делать так, чтобы компоненты подходили друг другу, развитие было согласовано, тестирование осуществлялось правильным образом. Сложно сказать, вертикальный это рост или горизонтальный. Эта позиция предполагает большую ответственность. Это усложнение и углубление моей роли в более продуктовом ключе. К тому же в работе я теперь активно использую английский язык как для чтения, так и для коммуникации с зарубежными коллегами. Иногда на это уходит до 50% рабочего дня.

Про горизонтальный рост

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

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

Как понять, куда расти дальше, если нет желания и/или возможности развиваться вертикально?

Во-первых, важна квалификация. Очевидно, чтобы программировать на C++, надо знать C++ и ещё много чего. Но дело не только в hard skills. Чтобы работа на новой позиции приносила радость, важно учесть три момента:

  1. Какой большой красивой задачей вы хотите заниматься? Это может быть план на десятилетие. В моём случае это развитие искусственного интеллекта, в частности компьютерной лингвистики. Вы, может быть, хотите отправить человека на Марс (почему нет?). Подумайте о том, что вас увлекает, и сконцентрируйтесь на этом.
  2. Затем нужно подумать, чем именно вы хотите наполнять свой рабочий день. Вы хотите взаимодействовать с людьми? Или хотите только программировать? Вам интереснее программирование, аналитика, тестирование или что-то ещё? Задачи для людей с одними и теми же hard skills, но разным темпераментом могут сильно отличаться.
  3. Наконец, важно учесть скорость, с которой происходят события на работе. Подумайте, насколько быстро вам надоедает та или иная тема и насколько быстро хочется сменить деятельность. Если время идёт для вас слишком быстро, следует искать позиции, на которых в день будет не десять задач, а две. Если хочется, чтобы всё сменялось быстро, тоже ищите что-то другое. Это очень зависит от отдела и позиции: например, работая в исследовательском департаменте, вы занимаетесь вещами, которыми никто прежде не занимался. От того момента, когда вы решили что-то попробовать, до момента, когда у вас что-то получилось, может пройти очень большое количество времени. Другой полюс — это, например, sales-инженеры, которые из продукта или нескольких продуктов запрограммируют решения. То, что они делают сейчас, через час уже может попасть к клиенту.

Если говорить про мой опыт, онтоинженер в плане скорости событий где-то посередине. У аналитика всё идёт быстрее. Роль продакт-менеджера предполагает ещё более быструю смену событий и довольно высокий уровень абстракции, но при этом вы должны быть погружены в специфику задач разработчиков, с которыми вы регулярно взаимодействуете. Чем более стратегическая и абстрактная у вас позиция, тем быстрее ваши задачи сменяют друг друга. Опираясь на это правило, вы сможете понять, в каком направлении вам стоит развиваться в карьере в IT.

Не смешно? А здесь смешно: @ithumor