Мы продолжаем серию интервью «История одного ядра» с командой C3D Labs о том, как создается российское коммерческое 3D-ядро. Сегодня свою историю рассказывает руководитель отдела программирования в нижегородском офисе C3D Labs Татьяна Митина, которая пришла к нам после 16 лет работы в Intel.
Первый вопрос, которой возникает после такого представления, чем привлекла вас разработка геометрического ядра в небольшой российской компании?
Видимо, в одной точке совпали сразу несколько предпосылок: моё математическое образование, большой опыт работы в ИТ-индустрии, опыт работы с САПР в качестве пользователя и администратора, а главное — желание изменить жизнь и приложить свои силы к новому интересному делу.
Тогда начнем по порядку — с образования.
Я окончила Горьковский университет, факультет вычислительной математики и кибернетики по специальности «Прикладная математика». В университет поступила, можно сказать, за компанию с одноклассницей. Перед этим смотрела на медицинский институт, архитектурный и даже на психологический факультет МГУ. Но в итоге пошла на ВМК, о чем ни капли не жалею. Математика оказалась «моей».
Нижний Новгород — ваш родной город?
Нет. Корни моей семьи происходят из Курской губернии, где я и родилась. В Горький по распределению приехал мой папа. Он окончил Харьковский авиационный институт и получил назначение в НПО «Гидромаш». На этом предприятии он проработал всю жизнь — начинал с должности мастера в цехе, а ушел из жизни, будучи замом гендиректора объединения. Я оказалась в этом городе в шесть лет и так здесь и осталась.
Вы учились в университете еще до наступления цифровой эры…
Да, нас выпускали как математиков, а не программистов. Компьютеры мы видели, как стойки с транзисторами и проводами. На лабораторных работах что-то вычисляли, переставляя эти провода и симулируя работу процессора. На старших курсах был Basic на базовом уровне. С персональными компьютерами я еще долго не сталкивалась. После университета я работала в Институте прикладной математики, где писала на Fortran, который в то время считался наиболее удобным языком для научных расчетов. Готовила диссертацию — разрабатывала комплекс для вычислений операций с аналитическими матрицами. Он должен был использоваться в НПО «Гидромаш».
Мы работали в пакетном режиме. Сначала писали программу на специальных бланках, затем нам пробивали перфокарты, мы их проверяли и отдавали операторам ЭВМ. Весь процесс до получения результата своей программы занимал больше дня. Поэтому писали программы очень внимательно, проверяя каждую букву по несколько раз, иначе весь цикл приходилось запускать заново.
Диссертация в итоге состоялась?
К сожалению, нет. Наступила перестройка, потом распался СССР, нам перестали платить зарплату, и я ушла. Моя научная карьера закончилась. Но началась совершенно новая — в ИТ.
Тогда вы и познакомились с увлекательным миром САПР.
Да, я пришла в инжиниринговую компанию, которая проектировала малые суда на подводных крыльях. Здесь впервые увидела персоналку. Я работала в компьютерном отделе, для саморазвития начала писать на языке С, а потом познакомилась с Pro/Engineer. Наша компания, наверное, первой в городе закупила CAD-систему такого уровня. Она работала на графических рабочих станциях под UNIX. Мощных персоналок, способных ворочать тяжелые CAD, еще не было.
Я освоила Pro/Engineer. Помню, как моделировала по расчетным таблицам лопасть гребного винта. Сечение лопасти постоянно меняет свою геометрию, и эта сложная поверхность параметрически создавалась в Pro/Engineer. К нам приходили делегации с других предприятий — посмотреть, как работают в САПР. Нас было три человека, кто изучил Pro/Engineer, и мы проводили экскурсии. Когда наша компания начала разваливаться, нас троих с удовольствием расхватали по предприятиям.
Кто расхватал вас?
Мои коллеги пошли на автозавод, а я — на авиационный завод «Сокол», в конструкторское бюро. Там как раз закупили Unigraphics на рабочих станциях, и нужно было администрировать весь комплекс, обучать сотрудников. Чтобы объяснить людям, для чего нужна автоматизация, я взяла у конструкторов чертежи шпангоута и сделала по ним трехмерную модель. Приходили начальники смотреть: «О, шпангоут крутится, круто!». Потом я даже видела эту 3D-модель шпангоута в рекламных материалах. С гордостью могу сказать, что принимала участие в проектировании учебно-боевого самолета ЯК-130. Работала с его главным конструктором, к примеру, выполняла расчеты уровня топлива в баках при разных кренах самолета, естественно, не на бумаге. А люди по соседству чертили на кульманах. Для меня было важно ощущать причастность к тому, что воплощено в металле, летает в небе.
Intel случился сразу после «Сокола»?
Между ними был короткий отрезок — судостроительное КБ «Вымпел», в то время закупившее шведскую судостроительную САПР Tribon. Им нужен был человек для ее администрирования. Днем я работала в КБ, а вечерами ездила на подработку в Нижегородскую лабораторию программных технологий, которая выполняла заказы Intel и других зарубежных компаний. Здесь я занималась чистым программированием и работала над модулем CAD-системы для бельгийской компании Brics (ныне Bricsys). На этой волне я и попала в Intel, когда компания открыла офис в Нижнем Новгороде.
В каких проектах вы участвовали в Intel?
В последние годы всё крутилось вокруг знаменитых профилировщиков и отладчиков Intel: Parallel Inspector, Parallel Advisor, VTune Amplifier. Я работала в командах, которые разрабатывали программное обеспечение для тонкой настройки производительности приложений, профилирования работы с потоками и с памятью, оптимизации векторных вычислений.
Мне удалось поработать в разных проектах и в интернациональных командах. Одно время была тесно связана с офисом в Израиле, несколько раз ездила туда, подружилась с коллегами. У нас была распределенная команда: люди в Америке, я в России и несколько человек в Израиле. Из-за разницы во времени наши виртуальные совещания начинались в 11 вечера, чтобы все могли собраться.
Работа в международной команде подразумевает свободное знание английского. Как вы учили язык?
С языком все началось еще до Intel, в лаборатории программных технологий. Когда я только пришла, то сразу попала в проект с Brics. Первый раз меня направили в Бельгию вместе с двумя коллегами, и я не прочувствовала, что такой иностранный язык. А заговорила я, когда в следующий раз поехала в командировку одна на две недели.
Компания оплачивала для нас курсы английского, но разговаривать не начнешь, пока не попадешь в языковую среду. У меня произошел курьезный случай. Нужно было что-то обсудить с коллегой из Австралии. Бельгийцев, говорящих по-английски, я еще понимала, а этого австралийца — совсем нет. В результате мы сидели втроем, и бельгийский коллега на своем английском переводил мне речь австралийца. Когда я оказалась одна в командировке, деваться было некуда. И я настолько вжилась в язык, что, вернувшись домой, иногда на улице или в транспорте отвечала на английском.
Сейчас я с удовольствием смотрю фильмы BBC на английском, без субтитров. Интересно слушать, как звучат голоса актеров. Какой красивый густой голос у Бенедикта Камбербэтча! Дубляж может упустить нюансы и изменить образ героя. В этом отношении мне нравится Израиль, где в кинотеатрах иностранные фильмы показываются на языке оригинала с субтитрами. Это полезно и для восприятия фильма, и для изучения языка.
Следующий уровень для меня — американский английский, где акцент различается в зависимости от штата и довольно много сленга.
Как произошло знакомство с C3D?
Очень просто — благодаря связям с компанией «ГеоС», которая занимается разработкой САПР и использует геометрическое ядро C3D. Когда два года назад в Intel началась реструктуризация, я подумала, что, возможно, это шанс как-то изменить жизнь — все-таки я 16 лет отработала в одной компании, захотелось попробовать применить свой опыт в какой-то другой области. Я узнала о C3D Labs, и для меня это стало возвращением к тому, с чего я когда-то начинала, к САПР.
До этого вы знали, что в России есть свое 3D-ядро, что компания АСКОН на его основе разрабатывает КОМПАС-3D?
Про АСКОН и КОМПАС я слышала. Но не задумывалась, какое там внутри ядро, существует ли оно в виде отдельного продукта. Когда узнала подробнее, меня это заинтересовало. Кроме того, захотелось поработать в российской компании — это другой стиль работы, другая атмосфера, отношения между людьми. В международной компании отношения регулируются правилами, корпоративными ценностями. Не могу сказать, что это плохо. Когда вместе работают люди из разных культур, разумные правила помогают решать конфликтные ситуации, находить точки соприкосновения.
Каковы были первые впечатления — окунуться в атмосферу почти стартапа после глобальной корпорации?
Мне сразу понравилась домашняя обстановка, более теплая, менее официальная. Я пришла в C3D Labs больше как программист, чем математик, и когда смотрела код, меня приятно удивили некоторые вещи. Было видно, что люди хорошо разбираются в C++ — как устроен язык, как он работает с разными типами данных. Грамотные и аккуратные самописные контейнеры, чтение/запись в формате C3D.
С чего началась работа в C3D Labs?
В качестве первой самостоятельной задачи я разработала расширенный формат данных на базе имеющегося у нас формата C3D. Существующий формат очень компактный, модель сохраняется в небольшой файл. Если мы сохранили модель, то должны ее полностью прочитать, и в этом состоит ограничение. Ведь иногда, чтобы прочитать большую модель, может потребоваться, условно, полчаса вместо нескольких секунд. Расширенный формат позволяет записать файл так, что потом можно не читать его целиком, а прочитать заголовок, выбрать объекты и прочитать только их. Это позволяет, к примеру, быстро зачитать и показать полигональное представление модели, пока большая модель продолжает читаться. Расширенный формат уже используется в просмотрщике C3D Viewer (прим. Подробно о расширенном формате Татьяна рассказывала в статье «Новые возможности расширенного формата C3D для чтения и записи 3D-моделей»).
Сейчас я занимаюсь многопоточностью. Мы реализуем параллельные вычисления в модулях C3D, а также обеспечиваем потокобезопасность C3D при работе в многопоточных пользовательских приложениях. Это работа, которую сложно завершить, объем работ здесь необъятный.
Вы программируете на C++, а другие языки могут пригодиться?
В основном пока C++, поскольку я не связана с оболочками, билдами. Но поправить или дополнить скрипт на JavaScript или Python могу. Знания других языков в работе пока не требуется.
Давайте поговорим о процессах разработки, ведь именно вы стали инициатором внедрения Agile
Когда я пришла в C3D Labs, некоторые моменты мне показались неэффективными. Сотрудники работали каждый в своей песочнице, иногда не знали, чем заняты коллеги, на какой стадии находятся работы. А ведь одна из основных задач Agile — сделать разработку прозрачной. В Intel я занималась организацией процесса разработки, была scrum-мастером. На основе своего опыта я написала документ, в котором по шагам разъяснила весь процесс, что и зачем делается, кто за что должен отвечать. Конечно, возражения были, и это понятно. Сложно перестроиться, когда годами работаешь в одном русле. К примеру, коллеги не сразу приняли, что после каждого спринта нужно рассказывать о своих работах. На первом этапе меня очень поддержал Олег Зыков, директор компании. По мере продвижения вперед большой вклад внес Юрий Козулин, руководитель разработки C3D Modeler. Ему, как лидеру команды, важно было добиться прозрачности работ, регулярного планирования.
Сколько потребовалось на принятие новой технологии разработки?
Обсуждать мы начали год назад, летом 2017 года. Проводили совещания, спорили. Были предложения «смягчить удар», вводить новшества постепенно. Но я себя вела достаточно жестко: будем переходить на новую технологию сразу и в полном объеме. Вообще, в жизни я мягкий человек, но в работе могу быть настойчивой, если уверена, что права. Возможно, это школа Intel.
Первые два месяца были очень сложными. Зато сейчас многое изменилось. Даже те, кто поначалу не соглашался, теперь охотно рассказывают на scrum-сессиях, чем занимаются сейчас и что планируют сделать. Я уходила в отпуск и была уверена, что без меня планирование пройдет нормально. Процесс отлажен, и я подумываю передать бразды правления, роль scrum-мастера теперь скорее техническая.
В нашем разговоре вы часто возвращаетесь к Intel. Что помимо технологий разработки и взаимодействия с распределенными интернациональными командами дал этот опыт?
За 16 лет Intel изменил меня коренным образом, мое отношение к работе, жизненную позицию. Сделал более инициативной, активной, смелой. Если вижу, что что-то делается неправильно, обязательно скажу, возьмусь помочь. В Intel поощрялось сотрудничество между людьми и командами. Даже если ты крутой специалист, но изолирован и ни с кем не общаешься, пользы не будет ни тебе, ни компании. Чем человек активнее общается и делится опытом, чем больше оказывает влияние на коллег, на принятие решений, тем больше у него возможностей для роста. Такой подход к делу выводит из зоны комфорта, но приучает работать над собой, настраивает на активную жизненную позицию. Возможно, это изначально было близко моему характеру.
Что сейчас вызывает азарт в работе, когда Agile отлажен? За что бы еще взялись?
Применение своих сил я вижу в улучшении структуры продукта, в оптимизации кода. Думаю над совершенствованием системы тестирования, поскольку какое-то время я была лидером тестирования в одном из проектов Intel и у меня хороший опыт организации работ в этой области.
Может ли C3D конкурировать с западными решениями?
А стоит ли? Ядра, которые используются в тяжелых CAD-системах, конкурируют между собой, а мы развиваемся в своей нише. У нас свои продукты — не только геометрическое ядро, но и решатель, конвертеры, 3D-визуализатор. Скоро появится модуль Mesh2Brep для преобразования полигонов в граничное представление. Ни одна компания не имеет столь полной собственной линейки технологических компонентов. Мы даем своим заказчикам все необходимые инструменты для быстрой разработки САПР.
Если выйти за пределы работы, то, что из последних культурных событий зацепило — кино, книги, театр?
В последнее время меня мало интересует беллетристика. Дочитаю до середины роман и уже понимаю, чем дело кончится и что хочет сказать автор. Становится скучно. Предпочитаю литературу, наводящую на размышления. Совсем недавно прочитала «Евангелие от Иисуса» Жозе Сарамаго.
Увлекаюсь мемуарами — интересны реальные жизненные ситуации и как человек из них выходит. Недавно прочитала воспоминания Эльдара Рязанова, Михаила Ширвиндта, Марка Захарова.
Люблю историческую литературу, в частности работы Льва Гумилева. Мне кажется, его теория пассионарности объясняет многие процессы, происходящие у нас и в мире.
Конечно, люблю театр. Очень нравится проект Театр HD, в рамках которого в кинотеатре можно посмотреть трансляции самых известных спектаклей из лучших театров мира.
Сотрудники C3D Labs известными своими увлечениями — головоломки, китайский язык, городецкая роспись. Как вы отдыхаете?
Люблю работать руками — вяжу, шью куклы, рисую, занимаюсь лоскутным шитьем, леплю разные безделушки из глины. Особая привязанность — дерево. Недавно сама отделала балкон вагонкой.
Очень люблю путешествовать, самостоятельно, тщательно планируя и изучая маршрут.
Еще я хочу изучить второй иностранный язык, т.к. путешествовать с одним английским в Европе иногда сложно. Возможно, это будет французский.
Вы проводите собеседования с кандидатами на работу. Есть ли по вашим наблюдениям различия в отношении к делу у разных поколений?
В жизненных приоритетах мы, конечно, отличаемся. Наше поколение меньше ориентировано на материальные ценности, у многих из нас до сих пор «романтический туман» в голове. Современные ребята более конкретные. А в профессиональном плане разницы нет. Мое убеждение — если человек адекватен и чего-то стоит профессионально, то найти ему место можно практически в любой команде.
Традиционный заключительный вопрос. Что бы вы сказали выпускникам и молодым специалистам? Почему стоит работать в C3D Labs?
Программистов ищут многие, а мы даем возможность реализовать себя влюбленным в математику.