Притчи НЁХоведения. 80 процентов
РЕДАКЦИОННАЯ РЕМАРКА
В настоящем трактате используется ненормативная лексика. Не для эпатажа. Не вместо технических терминов. И не потому, что автору не хватило литературного словаря. Иногда выражение «неведомая ёбаная хуйня» точнее описывает диагностическое состояние системы, чем три абзаца производственно-технической дипломатии. Там, где достаточно нормального инженерного языка, используется нормальный инженерный язык. Там, где без мата теряется смысл происходящего, мат остаётся.
О том, как выполнить поставленную задачу настолько хорошо, что оборудование перестаёт уметь делать всё остальное
На фабрике был расходный бункер. Под бункером стоял регулирующий шибер. Самый обычный. Открывается — материала идёт больше. Закрывается — меньше. Закрыл полностью — материал не идёт вообще. Последнее свойство считалось довольно полезным. Особенно когда под бункером находились люди.
Но была проблема. На рабочих режимах шибер почему-то иногда начинал медленно закрываться сам. Не резко. Не аварийно. Просто понемногу.
Стоит: 80 %.
Через десять минут: 77 %.
Через двадцать: 73 %.
Оператор добавляет.
Снова: 80 %.
Через некоторое время опять ползёт вниз.
Из-за этого плавала загрузка конвейера. Гуляла производительность. Технолог ругался. Оператор периодически возвращал шибер на 80 % с HMI. А в журнале заявок уже несколько месяцев жила запись: «Шибер самопроизвольно закрывается. Устранить».
Потом на фабрику пришёл новый инженер. Молодой. Бодрый. И с очень хорошей привычкой: закрывать заявки.
Он увидел запись. Спросил технолога:
— В чём проблема?
— Шибер ползёт вниз.
— Насколько вниз нельзя?
— На рабочем режиме ниже восьмидесяти лучше не давать. Загрузка проседает.
Инженер уточнил:
— То есть задача — чтобы ниже восьмидесяти не опускался?
Технолог уже смотрел в телефон.
— Ну да.
Это был важный момент. Но никто этого тогда ещё не понял.
Инженер открыл программу. Нашёл управление шибером. Посмотрел обратную связь. Положение действительно гуляло. Причину он искать не стал. Причина — это долго. А задача сформулирована прекрасно: НЕ ДАВАТЬ ШИБЕРУ ОПУСКАТЬСЯ НИЖЕ 80 %.
Через пятнадцать минут в программе появилась строка: GateCmd := MAX(GateCmd, 80.0);
Красиво. Коротко. Надёжно. Математика не врёт.
Если оператор задаёт 90 % — будет 90 %.
Если 80 % — будет 80 %.
Если 75 % — будет 80 %.
Если 20 % — будет 80 %.
Если 0 %… Тоже будет 80 %.
Но до этой строчки мысли тогда никто не дошёл. Запустили. Шибер: 80 %. Через десять минут: 80 %. Через двадцать: 80 %. Через час: 80 %. Технолог доволен. Оператор доволен. Инженер особенно доволен.
Заявку закрыли:
«Самопроизвольное снижение степени открытия устранено программно».
Даже слово «устранено» использовали. Оно всегда придаёт документу особую уверенность.
Несколько дней всё было прекрасно. Потом на конвейере под бункером обнаружили повреждённый ролик. Механики попросили остановить подачу. Оператор нажал: ЗАКРЫТЬ ШИБЕР. На экране: 80 %. Нажал ещё раз. 80 %. Перешёл в ручной режим. Задал: 0 %. Получил: 80 %.
Оператор посмотрел на экран. Потом ещё раз нажал кнопку. Иногда это помогает технике осознать серьёзность намерений человека. Не помогло. Позвонил автоматчику.
— Шибер не закрывается.
— Как не закрывается?
— Вообще.
Инженер подключился. Посмотрел программу. Посмотрел на GateCmd. Посмотрел на 80.0. И испытал то редкое профессиональное чувство, когда неисправность уже найдена, но сообщать об этом окружающим почему-то не хочется.
— Сейчас посмотрю.
— А чего смотреть? Мне людей под бункер запускать надо.
— Пока не запускай.
— Я и не запускаю, блядь. У меня над ними двадцать тонн руды и шибер, который решил, что восемьдесят процентов — это состояние души.
Пришёл технолог.
— Чего стоим?
— Шибер закрыть не можем.
— Почему?
Инженер начал:
— Там ограничение минимального задания…
Технолог посмотрел на него.
— Какое ещё ограничение?
— Ну… чтобы ниже восьмидесяти не опускался.
— ВО ВРЕМЯ РАБОТЫ!
В операторской возникла пауза. Очень полезная пауза. Во время неё все участники разговора получили возможность вспомнить первоначальную постановку задачи.
Технолог продолжил:
— Я сказал, что на рабочем режиме ниже восьмидесяти не надо!
Инженер возразил:
— Ты сказал: «ниже восьмидесяти не давать».
— А ЗАКРЫТЬ ЕГО КАК?!
Инженер посмотрел на программу. Программа выглядела абсолютно логичной. В этом и была проблема.
Ограничение убрали. Шибер закрыли. Механики отремонтировали конвейер. После этого наконец решили выяснить, почему шибер вообще сам ползал вниз. Причина нашлась довольно быстро. В приводе была неправильно настроена компенсация механического люфта.
При вибрации позиционер понемногу терял фактическое положение, а система управления продолжала считать, что исполнительный механизм находится там, куда его последний раз поставили.
Настройку исправили. Проверили несколько положений. Подождали. Шибер больше не уползал.
И при команде: 0 % спокойно закрывался.
То есть неисправность всё-таки удалось устранить. Не запрещая оборудованию выполнять одну из его основных функций.
Через неделю начальник производства попросил показать, что именно было сделано. Инженер рассказал. Начальник выслушал.
— То есть сначала проблема была в том, что шибер иногда сам закрывался?
— Да.
— А ты сделал так, чтобы он вообще не мог закрыться?
Инженер немного подумал.
— В первой версии — да.
— И заявку закрыл?
— Да.
Начальник кивнул.
— Красиво.
Инженер не понял, комплимент это или нет.
Начальник продолжил:
— Это как если бы дверь иногда сама захлопывалась, а ты решил проблему, заварив её открытой.
— Ну… примерно.
— Проблема с захлопыванием исчезла?
— Исчезла.
— Отлично.
Он уже вышел в коридор.
Потом вернулся в дверной проём и добавил: — ТОЛЬКО БОЛЬШЕ ТАК НЕ ЧИНИ.
ФОРМАЛИЗОВАННЫЕ ВЫВОДЫ
ТЕОРЕМА НЕПОЛНОГО ТРЕБОВАНИЯ
ЕСЛИ ТРЕБОВАНИЕ ОПИСЫВАЕТ ТОЛЬКО УСТРАНЕНИЕ ОДНОГО НЕЖЕЛАТЕЛЬНОГО ЭФФЕКТА, ЕГО МОЖНО ВЫПОЛНИТЬ СПОСОБОМ, КОТОРЫЙ УНИЧТОЖИТ ОСТАЛЬНОЙ СМЫСЛ СИСТЕМЫ.
Требование: «Шибер не должен самопроизвольно закрываться во время работы». И требование: «Шибер не должен закрываться». Различаются несколькими словами. А последствия — примерно двадцатью тоннами материала над ремонтной зоной.
ЗАКОН ЛОКАЛЬНОГО УСПЕХА
УСТРАНЕНИЕ НАБЛЮДАЕМОГО СИМПТОМА НЕ ДОКАЗЫВАЕТ УСТРАНЕНИЯ ЕГО ПРИЧИНЫ.
Шибер действительно перестал самопроизвольно закрываться. Более того. Он теперь вообще нихуя не закрывался. С точки зрения исходного симптома решение обладало исключительной эффективностью.
СИНДРОМ НАМЕРТВО ПРИКРУЧЕННЫХ ТРУСОВ
Так называется состояние системы, при котором нежелательное поведение устранено путём уничтожения необходимой степени свободы.
Простейшая диагностическая формула:
«ПРОБЛЕМЫ БОЛЬШЕ НЕТ, ПОТОМУ ЧТО ДЕЙСТВИЕ, ПРИ КОТОРОМ ОНА ВОЗНИКАЛА, ТЕПЕРЬ НЕВОЗМОЖНО ВООБЩЕ».
Двигатель больше не перегружается, потому что ему запретили разгоняться. Оператор больше не вводит неправильную уставку, потому что поле заблокировали. Механизм больше не попадает в нежелательное положение, потому что ему запретили туда двигаться. Связь больше не теряется при переключении резерва, потому что переключение резерва отключили.
Симптом действительно исчез. Поздравлять пока рано.
ЗАКОН БУКВАЛЬНОГО ИСПОЛНИТЕЛЯ
ЧЕМ ТОЧНЕЕ СПЕЦИАЛИСТ ВЫПОЛНЯЕТ ПЛОХО СФОРМУЛИРОВАННОЕ ТРЕБОВАНИЕ, ТЕМ КАЧЕСТВЕННЕЕ МОЖЕТ ПОЛУЧИТЬСЯ НЕПРАВИЛЬНЫЙ РЕЗУЛЬТАТ.
Поэтому: «Сделай, чтобы ниже 80 % не уходило»
хуже, чем: «Устрани самопроизвольное изменение положения шибера в рабочем режиме при сохранении штатной возможности полного закрытия во всех предусмотренных режимах».
Второе длиннее. Зато после него механики имеют шанс когда-нибудь попасть к оборудованию.
КОНТРОЛЬНЫЙ ВОПРОС ИСКОРЕНИТЕЛЯ
После особенно красивого устранения симптома полезно спросить:
«ХОРОШО. СИМПТОМ ИСЧЕЗ. А СИСТЕМА ВСЁ ЕЩЁ УМЕЕТ ДЕЛАТЬ ТО, РАДИ ЧЕГО ЕЁ ВООБЩЕ СОЗДАВАЛИ?»
Если после этого вопроса становится неловко — диагностику следует продолжить.
ПОЛЕВОЕ СЛЕДСТВИЕ
НАДЁЖНО ЗАВАРЕННАЯ ОТКРЫТОЙ ДВЕРЬ НИКОГДА САМОПРОИЗВОЛЬНО НЕ ЗАХЛОПНЕТСЯ.
Это ещё не делает её хорошей дверью.

