Automotive domain: специфіка розробки ПО для автомобілебудування

Привіт спільнота!
Недавно нечистий попутав мене звязатися з одним проектом в галузі автомобілебудування.
До цього досвід був з Екомерс, Веб-апп, Банківськими системами, а тут щось вроді і подібне, але все таки інше.
Прошу допомоги, все що можна: якісь курси, чи статті, чи книги десь зустрічали — що завгодно, щоб краще зрозуміти специфіку розробки в цьому домені.
Особисті поради в коментарях теж годяться!

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Если это не Тесла или автомотив стартап, то совет валить и побыстрее.
1. С точки зрения технического роста там все плохо потому что они очень архаичны и по технологиям и по процессам. То, что уже стало стандартом индустрии в том же Вебе годами обдумывается и потом годами внедряется. Большой кусок технологий практически не имеет аналогов во внешнем мире, в результате, вернуться назад становится все сложнее. А эджайл там закрепился в виде переименования должностей и событий.
2. С точки зрения роста в сторону менеджерства все еще хуже. Т.к. это классическая пирамида власти «я начальник — ты дурак», паническим страхом изменений, инноваций и ответственности и неизменным перекладывание вины за факапы на стрелочников.

Много лет опыта в этой сфере.

+1 досить закритий на специфічний ринок
треба уважно дивитися наскільки те шо робите с своєму болоті конвертується в риночне.
Бо людей вони не цінують

Большой кусок технологий практически не имеет аналогов во внешнем мире

Например?

У меня есть подозрение, что 3/4 называет аутомотивом какую-то свою очень узкую и закрытую нишу, думая что так везде.

Начну хотя бы с того, что в автомотиве еще не все даже перешли на git. Сидят на PTC и Per4rce.
Много где CI или не существует или находится в полуручном режиме. От gitHub / gitLab и клаудов открещиваются как черт от ладана (типа их говнокод кто-то красть будет). Соответственно, в лучшем случае все билдится на бэр-метале, причем локально на месте (а не на каком-то внутреннем клауде). В лучшем случае Дженкинсом. И так во всем.

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

Проблема еще и в том, что, за исключением Теслы и нескольких стартапов (возможно), весь рынок одинаковый и бежать особо не к кому. Лучше просто не вляпываться в это.

Много где CI или не существует или находится в полуручном режиме.

Я лично знаю случай где был git push -f в мастер, а порядок пушей устанавливался очередностью на листике бумаги. Еще был цветок в горшке, который таскали со стола на стол, это был push mutex что б случайно не запушили нерибейзеные ветки (хотя это все равно происходило). Юнит тесты гонялись локально, и в одну кучу было смешано все — юниты и интеграционные.

От gitHub / gitLab и клаудов открещиваются

А как на счет code review и хранение review findings — в Excel таблице которая пересылалась друг другу через файлообменник? Ладно в клауде хранить это плохая идея в общем то, их можно понять, но есть же версии для локальной установки как платные, так и бесплатные (gogs/gitea).

В общем, в большинстве случаев оно все затхлое и отстает лет на 10-20 от мира.

здається ми з вами працюємо на одному проекті ..)

Начну хотя бы с того, что в автомотиве еще не все даже перешли на git

Скажи сразу о каком месте (Tier) supply-chain ты говоришь? Если это Tier 3/4, то что спускают украинскому аутсорсу — там может быть всё, что угодно, включая соддом и гоморру. Если про Tier 1 — то Denso, Bosch, LGe, Harman/Samsung — это на вскидку четыре стороны квадрата, где полностью свои миры и они играют так, как хотят. Если это Tier 0, к примеру GM, Ford, Toyota — то там серьёзной разработки не очень много, может быть микроконтроллеры для ECU и т.п., но не более, так как все ADAS, IVI, infotainment отдаются Tier 1, ибо экспертизы не очень много у них, тот же Ford кидается от одного к другому и в конце концов отдаст разработку Tier 1.

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

Опять же интересно послушать о том, что ты конкретно имеешь в виду? Что за проект? Например, тот же Android Auto, который во власти Гугла вполне себе закрытый, они только совсем недавно SDK открыли для third-parties. Если ты на проекте или платформе ты делаешь несколько сот лимонов в год в полу-пассивном режиме, то весь оупен соурс идёт на йух с его красноглазиками и бородачами %)

Проблема еще и в том, что, за исключением Тесли и нескольких стартапов (возможно), весь рынок одинаковый и бежать особо не к кому. Лучше просто не вляпываться в это.

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

Работал в Tier1, Tier2. Tier0 видел своими глазами. Собственно, никакой принципиальной разницы между этими уровнями не заметил.
И проекты тоже разные пробовал от ECU до Infotainment.

Если про Tier 1 — то Denso, Bosch, LGe, Harman/Samsung — это на вскидку четыре стороны квадрата, где полностью свои миры и они играют так, как хотят.

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

Если это Tier 0, к примеру GM, Ford, Toyota — то там серьёзной разработки не очень много, может быть микроконтроллеры для ECU и т.п., но не более, так как все ADAS, IVI, infotainment отдаются Tier 1

Последний тренд как раз в том, чтобы сосредотачивать центры экспертизы по таким ключевым технологиям как ADAS, AD, Infotainment у себя

ибо экспертизы не очень много у них

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

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

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

Я наборот многих чморю, потому что слишком передовое и сырое используют. Но оно и понятно, им ещё 5+ лет это поддерживать после выхода на рынок. Не будем показывать пальцами, но, например, взяли самый распоследний Андроид, запускают как гостевую ОС под нами и столько лулзов выхватывают, что мне кажется, что 3/4 разработки у них — это борьба с сырым андроидом. Подключают N мониторов к нему, оно с одним монитором работает и сам Андроид не предназначен для работы с несколькими мониторами, ибо у них до сих пор есть понятие главного монитора, по которому идёт синхронизация.

Последний тренд как раз в том, чтобы сосредотачивать центры экспертизы по таким ключевым технологиям как ADAS, AD, Infotainment у себя

Судя по количеству заказов — как раз обратная картина, все поигрались, говна наелись и больше такого не хотят.

Судя по количеству заказов — как раз обратная картина, все поигрались, говна наелись и больше такого не хотят.

Может это разница между американским и европейским рынками. Но мы отошли от темы. Речь о том, почему не стоит работать в этой отрасли.

А в какой работать? Мне тут очень нравится, но у нас роль особая, мы являемся вендором платформы и одновременно Tier 2 для Tier 1. Одновременно и диктуем политику и прогибаемся :)

Я, допустим, работаю с железом и за 12 лет единственное, что сильно надоело, так это то, что работаем с pre-market железом за 1-2 года до его выпуска, всё сырое и кривое.

Працював, що називається, С++ Generalist’ом в двох лідерах ринку на автомотів проектах, специфіки нема. Все, нема що обговорювати.
На першій роботі працював джуном в автомотіві, на другий прийшов сіньйором і доріс до тімліда.
Береш вимоги, реалізуєш, все. Достатньо хорошого знання плюсів і лінукс систем.

МОЖЛИВО, можливо але не точно, є специфіка при роботі з Embedded, мікроконтролерами та розробка якихось low level realtime модулів, аже все ж таки тачка на ходу це в чистому виді realtime система.
Якщо не спускатися на цей рівень, а працювати з бізнес-логікою, мультимедіа, навігацією, радіо, рештою систем, то різниці нема взагалі.

Зависит от того что ты хочешь делать

Если это что-то на приборную панель (проиграть музыку, показать погоду), то это одно, и свободы будет много (как в выборе технологий, так и процессов разработки).
Если это какой то safety critical модуль, например АБС или индикатор скорости на той же приборке — то тут все очень зарегулировано. Скорее всего у вас будет v-model, iso 26262 и различные coding guidelines в избытке (для С++ это Autosar, MISRA). Оверхед по бюрократии (документация, сертификации, подбор софта, компиляторов, итд) огромен, кратно больше усилий на написание кода.

В любом случае начинать с ISO 26262, вот хороший quick intro: www.feabhas.com/...​e to ISO 26262[1]_0_0.pdf (с примерами)
И далее уже искать по V-Model информацию

Autosar: www.autosar.org/...​AR_RS_CPP14Guidelines.pdf
MISRA: www.tlemp.com/...​SRA-CPP-2008-STANDARD.pdf (2008, старенькая, уже есть новее, но она платная)

И еще нужно знать о QM, ASIL (Их 4 уровня — A, B, C, D)

Что делать будешь? А то звучит как есть у кого опыт разработки под винду, дайте пару советов.

Окей,
я AQA, мене запросили на проект ТОП-1,2 світового автомобільного розробника (хто на якому місці їх тримає) поставити процес тестування.
з того що я уже зрозуміла:
Проекту 2 роки, пишеться ПО на медіа панель автомобілів, на Harman з підключенням ще купи сторонніх модулів, типу навігаціі. кар пей етк.
Дві команди розробників , 24 людини комітять зразу в мастер. Ні про яке ревью чи тестування взагалі не йде мови. Є автоматизація Е2Е на сайпресі, що в цілому чудо — врахвуючи що це досить свіжий фреймоврк. Клієнт змінює свою думку по 2 рази в день.
Взагалі за 2 тижні на проекті я зрозуміла що існує дуже багато хаосу з боку Хармана і інших доп модулів, але на жаль команда теж впустила цей хаос в середину свого SDLа.

Проекту 2 роки, пишеться ПО на медіа панель автомобілів, на Harman з підключенням ще купи сторонніх модулів, типу навігаціі. кар пей етк

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

Дві команди розробників , 24 людини комітять зразу в мастер.

Для такого уровня разработки ничего страшного :) Проект не сильно большой и объёмный.

Взагалі за 2 тижні на проекті я зрозуміла що існує дуже багато хаосу з боку Хармана і інших доп модулів, але на жаль команда теж впустила цей хаос в середину свого SDLа.

Если Харман тут Tier 1 интегратор, то это их головная боль. Но, например, у Хармана есть свои R&D центры в Индии и Китае, они ещё как-то заботятся об интеграции сторонних компонент в свои, но если это проект, где Tier 1 выступают в роли чистого интегратора и собирают в кучу то, что написали Tier 2/3, то тут уж как повезёт. Коллеги по Tier 2/3 бывают очень ущербные и коммуникация поломана совсем, если не дай бог что-то друг-другу мешает, то виновных не найти.

я AQA, мене запросили на проект ТОП-1,2 світового автомобільного розробника (хто на якому місці їх тримає) поставити процес тестування.

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

dou.ua/lenta/tags/Automotive — статті зі стрічки DOU на тему
dou.ua/forums/tags/Automotive — обговорення на форумі

Бажаємо успіхів у новій галузі! 💪

Підписатись на коментарі