Байки
January 27

Нержавейка ржавеет!

Забавное название лучше запоминается. Это метафора.
Описание проблемы родилось лет 10 назад в диалогах с (Костей? Мишей? Пашей Ка? неважно уже).


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

Одновременно с этим, такой штуки как «нержавеющая сталь» — не существует, не бывает ее. Потому что нет способа с прикладной точки зрения сделать бытовой сплав на основе железа [Fe], который совсем не будет взаимодействовать с кислородом, и при этом всё еще будет хоть сколько-нибудь сталью.

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

Бывает сталь низко-коррозионная, о чем знают инженеры. Причем, сюрприз, она тоже разная. Что-то подходит для использования в быту, в вилке. Что-то подходит для корпуса лодки. Если вы бытовую дешманскую вилку засунете в морскую воду, уже через месяц физика покажет вам всё, на что она способна.

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

А есть вообще упоротые решения, когда «хер с ним, пускай ржавеет, ей можно, выглядит как говно, но на прочность не влияет» (опять же, в заданном диапазоне). Гуглить Hardox и Corten.


Цель решения в любом случае задается заранее: я хочу, чтобы вот эта хрень продержалась 10-15 лет, вот в таких условиях среды. За 300 лет у вас сгниет почти что угодно.

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


Обнаруживать, что «оно ржавеет» обычно сильно неприятно. Это означает, что-либо вы сейчас требуете от конкретной технологии слегка невозможного для нее (т.е нарушаете вводные условия, и надо как-то этот момент пересмотреть), либо изначально условия и решения выбраны неподходящими, и надо идти, переделывать на что-то посерьезнее; к задаче изначально подошли неверно, без реалий эксплуатации.

А может их и не знали вовсе.
«Практика покажет» — ну вот, практика показала.

Почему это для вас важно: если в команде есть инженеры-проектировщики, то именно они должны об этом моменте помнить, и этот момент предусмотреть. Для обывателя, потребителя, маркетинга, и прочих гуманитариев — пускай будет «просто нержавейка». Они все равно не разберутся, они инженерному отделу доверяют. Им важно чтобы вот это вот тут 10 лет проработало, а какой черной магией это будет сделано — па-хе-ру.

См.также: «что у вас покупают».


Соответственно, направления у проблематики здесь два:

Слишком агрессивные условия

У вас корпус лодки собран из китайского говна для столовых приборов: вы требуете от решения чего-то, физически слабо возможного. Для красивого прототипа всего хватало, а при попытке выжать все соки 24×7 что-то хрустнуло и сказало «ой».

Чаще всего эта часть проблемы вылезет у вас на свет тогда, когда выросла нагрузка и/ли аппетиты. Ход решения: эти самые агрессивные условия убрать (например, количественно).

  • какие-то технологии органически хреново работают под неподходящей, параллельной и/ли сверх-высокой нагрузкой (и попытка их научить напоминает сову на глобусе, лучше взять другие)
  • какие-то технологии предназначены для обывательских или исследовательских задач — они косячат, авторы сами отказываются от ответственности, все риски будут ваши и только ваши
  • возможно, для решения проблемной части задачи (и только её) вам теперь нужен отдельный инструмент.

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

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


Слишком оптимистичное проектирование

Это когда вы заведомо собирали решение из говна и палок. Например, в попытке сэкономить (и это вполне valid point). Для старта выглядело подходящим решением, «поплывет — будем думать». Сейчас не плывет; пора думать.

  • чаще всего случается, когда оценочный демо-прототип и proof of concept без спроса тащат в продакшн. Некорректно говорить, что «оно не смогло»; оно и не могло «смочь», т.к создавалось для другой задачи.
  • какие-то решения несоизмеримо дорого допиливать под себя. Пока вам хватало детского велосипеда из коробки, всё окей; прикручивать к нему колеса от Белаза и ракетный двигатель скорее всего не получится. Возьмите опыт, спроектируйте заново.
  • если вы собираете конструктор из вороха мусорных решений (привет, опенсорц и современный фронтенд в частности), то сумма слагаемых определяется квалификацией вашего проектировщика. А кто он, и где он вообще?
  • без количественной модели и ТЗ — количественно результат будет ХЗ. Качественно тоже. Почему количественно на первом месте — потому что свои аппетиты обычно забывают оценить и занести внутрь документов. То, что оно работает для 1 клиента, совершенно не факт, что вообще сможет работать для 1000. И я знаю ВТБ, который об это лажанулся на $150 млн.

Оптимизм лечится документацией и оценкой. Если в оценке аппетиты с возможностями сходятся — хорошо. Если нет — делайте что-то с этим, возможно в текущих реалиях этот кусок пирога вы не прожуёте, надо как-то прикинуть план к носу.


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

Еще к любому плану «как оно ща взлетит!» должен прилагаться минимум один, а лучше несколько планов «что мы будем делать, если не взлетит».

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


Текст в разделе «Байки», потому что это скорее метафорическая иллюстрация к концепции, чем руководство к действию.