Pofigism as a lifestyle 2.0

Рабоче-занудное

Posted in Просто трёп by pofigist on Март 28, 2014

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

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

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

Вообще-то, я хотел сказать несколько о другом. Поработав с различного рода отказоусточивыми системами (и safety-critical, уж не знаю, как это перевести на русский) я был просто поражен тем, что в медицинском софте нет практически никаких стандартов или принципов построения систем. То есть, там есть попытки стандартизировать тот бардак, который там творится, например AAMI SW68 и выросший из него стандарт IEC62304, но это все касается процесса разработки. То есть, вот такой недо-DO-178B если вы знаете о чем я говорю. Ничего подобного MISRA (неважно какой версии) в медицине нет! Офигеть…

В итоге, проект начался без стандартов кодирования, инженеры не имеют ни малейшего понятия об устройстве операционных систем реального времени (и, что хуже, они вообще не понимают, зачем такие системы нужны!). Когда я им представил концепт примитивной операционки на основе кооперативной многозадачности, у них челюсти поотваливались, хотя, казалось бы, что может быть проще? Ну и все остальные сопутствующие «прелести» — динамическое распределение памяти (во встраиваемой системе-то, да еще и критичной к распределению ресурсов!), попытка писать на С++ с компилятором, который поддерживает только С (кстати, впервые в жизни такое встречаю, обычно народ пишет в С++ среде на чистом С), причем, без малейшего понятия о принципах инкапсуляции, повсеместное использование goto (что приемлемо только в ассемблерах) и тому подобные радости жизни.

Я созвал совещание, раздраконил всех в пух и прах, приказал им удалить этот ужас, что они сотворили с серверов компании (чтобы не приведи Господь, никто такое страхолюдство не увидел) и заставил их сесть за изучение принципа построения софта для автомобильных систем. Почему автомобильных? Потому что не тащить же их за уши в DO-178B или MIL 489!

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

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

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

Tagged with: