Софтом по автопрому: как растет автоэкспертиза EPAM

В мире выпущено более миллиарда автомобилей, электронная начинка которых создана при участии EPAM. Об уникальном опыте работы в автоиндустрии, разработке embedded-систем и эволюции взаимоотношений c заказчиком рассказали Михаил Федорович, проектный менеджер, и Вадим Борцов, ресурсный менеджер.

 

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

«Прошивка» блоков без танцев с бубном

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

Далее, благодаря мощному код-генератору с дополнительной валидацией (defensive code checks), продукт генерирует С-код, свободный от большого класса рантайм-проблем, что, соответственно, сказывается на надежности работы блоков управления.

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

 

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

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

Проблема больших данных

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

Данных, которые «снимают» с автомобилей во время экспериментов различные датчики, очень много: в одном только автомобильном двигателе есть 90 000 параметров, которые можно считать, из них 15 000 можно калибровать. И количество параметров увеличивается вдвое каждые 3 года. Где и каким образом хранить такие огромные объемы неструктурированных данных, каждый производитель решает сам — многие просто складируют их на внутренних серверах.

Однако есть общая для всех проблема: поиск нужной информации. Например, после ряда тестов инженер хочет найти данные о перегревах двигателя — в какой момент они случались, где при этом находился автомобиль, как себя вели другие системы и так далее. А сделать это непросто.

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

 

Этот «стартап» внутри компании-заказчика стартовал несколько лет назад. Поначалу компания сотрудничала с командой разработчиков из Вьетнама, но дело не шло. До тех пор, пока не приехала команда С++ разработчиков в полном составе, когда после неформальной беседы между ребятами и менеджером проекта компании-заказчика EPAM предложили стать следующим вендором.

Эволюция отношений с заказчиком

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

«История сотрудничества началась еще в 2008-м году, — рассказывает Михаил Федорович, проектный менеджер, — и поначалу отношение к EPAM было подозрительным: периодически ребятам из Будапешта (проект начинался в Венгрии) приходилось ездить к заказчику, дабы убедить менеджеров, что они работают фултайм. Затем изменилось на настороженное — мы уже могли работать без тотального контроля, но все же спектр наших ответственностей был ограничен поставленными задачами. Сегодня же отношения можно назвать доверительными — настолько, что наш архитектор входит в команду архитекторов заказчика, на проекте есть два продукт-оунера и два выделенных скрам-мастера. Но лучшим доказательством признания заслуг EPAM является тот факт, что заказчик предпочитает работать именно с нами, несмотря на то, что у компании есть свой собственный девелопмент-центр в Индии. В целом, я могу сказать, что это team-driven успех. На проекте в прошлом и настоящем было и есть много ребят, которые проактивно относятся к своей работе, болеют за то, что они делают, и стараются каждый день, приходя на работу, сделать «мир лучше». Стараются смотреть на проблемы заказчика не только в рамках поставленных задач, но и думают, анализируют и предлагают инженерные решения, которые помогают решить проблему комплексно».

 

 «У меня есть, скажем так, «розовая» мечта, – говорит Вадим Борцов, ресурсный менеджер проекта, – хочется верить, что однажды автомобильная экспертиза EPAM вырастет настолько, что мы сможем сотрудничать с производителями напрямую и писать прошивки блоков управления и софт для бортовых компьютеров новейших автомобилей. А чтобы это было именно так, мы постоянно растем, увеличиваем команду и предлагаем новые карьерные возможности. В целом, уже сейчас, если абстрагироваться от ежедневных активностей и посмотреть на автомобили вокруг, можно смело сказать: да, мы участвовали в их разработке. И это вдохновляет».