Все статьи

Как НЖЯ и Теория Ограничений решают проблемы

Как НЖЯ и Теория Ограничений решают проблемы

  • НЖЯ (Нежелательное Явление) — это крутой инструмент из Теории Ограничений (ТОС). Он реально помогает отделить симптомы от настоящих корневых проблем. По опыту знаю: многие команды месяцами борются с симптомами, пока не научатся правильно формулировать, что же болит. Классика жанра — хватаешься за очевидное решение, которое в итоге не приносит ни грамма результата. Мы сейчас разберем реальный кейс, где команда чуть не ушла писать бесполезную документацию.
Изображение

Задача была такая: производственный цех, занимающийся мелкосерийной сборкой электроники. 25% всех сборок летели обратно на доработку из-за кривых ручных инструкций. Итог? Линия вставала на 4 часа каждую неделю. Решение, которое они хотели принять сразу (симптоматическое лечение) — нанять еще одного редактора и переписать всё. Но команда пошла другим путем — через НЖЯ. Они выявили корень проблемы: неясные формулировки в разделе "Проверка полярности". Результат? После стандартизации терминологии и внедрения визуальных чек-листов процент возвратов упал до 3% за первый месяц. Это сэкономило цеху около 15 000 рублей еженедельно на устранении брака и снизило простой линии на целых 85%. 🚀

Что такое НЖЯ и зачем его применять в разработке?

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

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

История: Почему Винни-Пух и Пятачок чуть не написали "вечную" документацию

Команда столкнулась с красным дежурством. После общего голосования победил диагноз: «Дежурный долго ищет ответы на вопросы». План был готов: за три недели написать документацию.

Но тут Пятачок рассказал о кошмарном сне. Месяцы уходят на написание этих самых инструкций, а дежурство всё равно красное. Этот сон заставил команду остановиться и подумать. А что, если мы идем не туда?

Изображение

Сова предложила использовать НеЖелательное Явление (НЖЯ) — инструмент, который популяризировал Голдратт в рамках ТОС. Это помогло им увидеть, что "очевидное" решение может быть ловушкой.

Можно, конечно, возразить: строгая формализация проблем через НЖЯ замедляет начальный этап реагирования. Особенно когда инцидент критический, и нужно быстро что-то предпринять, пусть и не идеально. Некоторые разработчики считают, что на этапе "тушения пожара" лучше сразу применить самое очевидное контрдействие (перезапустить сервис или накидать черновик процедуры), а ретроспективой займемся потом. Но следование НЖЯ не отменяет быстрого реагирования. Оно лишь накладывает обязательство: задокументировать фактическое нежелательное явление и его причину в постмортеме. Это нужно, чтобы не возвращаться к циклу "быстрое исправление -> возврат симптома" в будущем. Честно говоря, это всегда экономит время в долгосрочной перспективе.

Какие 7 правил НЖЯ нужно соблюдать для верной формулировки?

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

Вот семь правил, которые я лично использую постоянно в системной интеграции и автоматизации:

1. Регулярность: Проблема должна повторяться, а не быть разовым сбоем.

2. Зона влияния: Вы должны иметь возможность на нее повлиять.

3. Объективность и измеримость: Никаких субъективных слов вроде «долго» или «плохо». Нужны конкретные цифры.

4. Не путать с причиной: Сначала фиксируем явление, потом ищем причину.

5. Не завуалированное решение: Формулировка не должна содержать само решение (например, «нет документации» — это уже решение, а не проблема).

6. Не обвинять: Фокус должен быть на системе, а не на людях.

7. Очевидная негативность: Должно быть сразу видно, почему это плохо (критичность должна быть очевидна).

Изображение

Проверяем старую формулировку

Формулировка: «Дежурный долго ищет ответы на вопросы».

  • Объективность нарушена: «долго» — это субъективно.
  • Содержит решение: сразу намекает на необходимость документации.

Вердикт: это симптом.

В одном проекте мы автоматизировали сборку Docker-образов через GitLab CI. Изначальная жалоба звучала так: «Процесс сборки занимает слишком много времени, и мы не успеваем к релизу». Мы применили правила, и переформулировали это: «Среднее время выполнения пайплайна build_and_test увеличилось с 45 минут до 1 часа 20 минут за последние три недели, что привело к срыву дедлайна по выкатке патчей в 4 из 5 последних циклов». Смещение фокуса с субъективного «слишком много» на измеримое увеличение на 35 минут позволило нам немедленно найти узкое место — медленный шаг pip install из внешнего репозитория, а не винить команду тестирования. 💡

Как Главный Вопрос НЖЯ выводит на корневую проблему

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

Главный вопрос НЖЯ звучит так: «Если бы этой проблемы не было, что бы улучшилось?»

В нашем кейсе Пух ответил: «Я бы смог заниматься техдолгом». Это указало на техдолг, но круг подозреваемых оставался замкнутым: ищут ответы -> нет времени на техдолг -> нет документации -> ищут ответы.

Изображение

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

Считаем цифры: от симптома к инцидентам

Проведя аудит (что я настоятельно рекомендую делать до старта любого крупного проекта), команда выяснила:

  • Стандартные вопросы занимали около 1 дня в месяц.
  • Сложные вопросы по интеграции — 4 дня в год.
  • Итого: 16 дней в год (примерно 6% времени).

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

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

Изображение

Новая, корректная формулировка НЖЯ: «Раз в месяц у нас происходят инциденты с деградацией сервисов для клиентов (6 раз за последние полгода)».

Вот это прошло все семь тестов. Мы нашли корневую проблему — нестабильность сервисов.

Как правильная формулировка меняет фокус работы?

Когда мы нашли истинное НЖЯ, стало очевидно: документация — это второстепенная задача.

| Параметр | До НЖЯ | После НЖЯ |

| :--- | :--- | :--- |

| Проблема | Документация | Стабильность сервисов |

| Приоритет | Высокий (казалось) | Критический (инциденты) |

| Фокус | Человек (дежурный) | Система |

  • Урок первый: Формулировка буквально определяет, какое решение ты примешь. Решая про "долго ищет", мы бы писали документацию. Решая про "инциденты", мы стабилизируем систему.
  • Урок второй: Не всё, что кажется проблемой, ею является. 6% времени на вопросы — это не катастрофа. Инциденты — вот это катастрофа.

Если самостоятельная настройка НЖЯ кажется сложной, особенно когда речь идет о выявлении таких неочевидных зависимостей в архитектуре, я готов помочь. Мой опыт в системной интеграции показывает, как быстро можно сдвинуть фокус с симптомов на реальные ограничения. ⚡

  • Нужно внедрить ТОС или провести аудит процессов?

Я — опытный Python-разработчик, специализирующийся на автоматизации и системной интеграции. Мы помогаем тем компаниям, которые запутались в симптомах и отчаянно ищут корневые проблемы:

  • Проводим аудит текущих процессов и выявляем истинные ограничения (НЖЯ).
  • Разрабатываем системы мониторинга, чтобы объективно измерять проблемы в цифрах.
  • Автоматизируем процессы, устраняя выявленные узкие места.

Применяем НЖЯ на практике

Главный вывод, который нужно вынести: прежде чем бросаться в бой, убедитесь, что целитесь в правильную мишень. Для этого используйте 7 правил НЖЯ и Главный Вопрос. Проверенные на практике инструменты ТОС сэкономили той команде месяц, который они бы потратили на совершенно бесполезную документацию.

Чтобы начать, просто возьмите одну проблему, которая вас беспокоит — например, низкая производительность или частые баги. Шаг 1: проверьте ее по правилам. Если там есть «долго», спросите себя: «А в цифрах это сколько?».

Применяйте НЖЯ, и вы увидите, как ваши решения станут точными и по-настоящему эффективными.

Нужна помощь с автоматизацией?

Обсудим ваш проект и найдём решение

Получить консультацию