Диагностика · 6 мин
Как искать причину ошибки
Путь от точного сообщения и контекста до проверяемых гипотез, без преждевременного выбора виноватого условия.
Пользователь пишет: «На шаге согласования появилась ошибка». Чтобы разобраться, аналитик собирает точный текст сообщения, место появления, последовательность действий и данные заявки. Затем LEM помогает найти относящиеся к сценарию источники, а команда проверяет гипотезы в подходящей среде.
Сохраните наблюдение без пересказа
Попросите скопировать сообщение полностью, включая заголовок и детали. Если текст нельзя скопировать, запишите его дословно и отметьте, что это ручная запись. Добавьте экран, действие перед ошибкой, время, выбранную операцию, состояние документа и доступные сведения о среде. Уточните, повторяется ли проблема, и что пользователь делал непосредственно до неё.
В сквозной учебной модели «Заявка на выплату» есть операции «Оплата услуг» и «Возврат средств». Назначение обязательно только для оплаты услуг; ниже 100000 рублей предусматривается один согласующий, от 100000 — два. Эти условия вымышлены для учебного разбора. Пусть сотрудник сообщает об ошибке при отправке заявки на согласование. Не выводите сразу, что забыто назначение: операция могла быть возвратом, сумма могла пересечь порог, документ могли изменить после заполнения или сообщение могло относиться к другому шагу.
Сформулируйте запрос на исследование
Когда контекст собран, задайте LEM узкий вопрос: какие доступные правила и связи относятся к действию, полям и сообщению. Если точный текст известен, включите его. Попросите отделить точные находки от возможных совпадений и не устанавливать причину без достаточных данных.
Исследуй сообщение «Не заполнено назначение» при отправке учебной «Заявки на выплату». Найди доступные проверки, связанные поля и условия операции. Укажи, какие выводы точно поддерживаются источниками, какие остаются гипотезами и какие входные данные нужно собрать, чтобы воспроизвести случай.
Если точное сообщение не находится, расширяйте поиск по названию действия, полю, сущности и соседним этапам процесса: формулировка могла отличаться или сообщение может формироваться в другом компоненте.
Постройте несколько проверяемых гипотез
Хорошая гипотеза связывает условие и наблюдение так, чтобы их можно было проверить. Например: проверка срабатывает только для «Оплаты услуг», а в конкретном документе операция была именно такой и назначение отсутствовало. Другая версия: назначение показывалось в форме, но не сохранилось в документе. Ещё одна: поле заполнено, но ошибка относится к иному обязательному реквизиту. Это варианты исследования, не выводы о реальной системе.
Для каждой версии запишите подтверждающие сведения, противоречия и недостающий факт. Сначала проверяйте самые дешёвые вопросы: та ли операция выбрана, на каком этапе появляется сообщение, сохранён ли документ, соответствует ли текст проблемного поля экрану и данным после повторного открытия. Затем сопоставьте эти факты с найденными источниками. Не просите пользователя менять настройки или обходить ограничение ради эксперимента в рабочей базе.
Воспроизведите случай на безопасном примере
Если доступна разрешённая тестовая база, подготовьте документ с теми же значимыми условиями и минимальными изменениями. Повторите действия в том же порядке, зафиксируйте исходные данные и момент ошибки. Если сообщение не воспроизводится, это не опровергает рассказ пользователя: могли отличаться роль, версия, настройки, связанные документы или состояние данных. Их проверяют как отдельные факторы.
LEM помогает найти доступные правила и точки проверки; фактический результат подтверждается отдельным запуском в разрешённой тестовой среде. Подробнее о различии найденного правила и наблюдения — в статье «Найденное правило и требование — не одно и то же».
Оформите результат так, чтобы его можно было продолжить
Передайте команде точный текст сообщения, шаг, входные данные, найденные источники, рассмотренные версии и результат каждой проверки. Отдельно укажите, чего не удалось подтвердить. Если причина пока не установлена, так и скажите; следующий шаг может быть сбором диагностических данных, повторением сценария или уточнением ожидаемого поведения у владельца процесса.
В учебном примере дополнительно проверяют границу порога: 99999, 100000 и 100001 рубль, а также каждую операцию с пустым и заполненным назначением. Эти случаи помогают определить, какое условие связано с сообщением, но не заменяют расследование конкретного документа. Для сравнения вариантов, в которых ошибка возникает не всегда, продолжите с разбором зависимости от условий.
Так сообщение превращается в воспроизводимый вопрос, а не повод немедленно менять данные или систему. Аналитик может объяснить, что найдено в доступных источниках, какие сценарии проверены и что осталось неизвестным. Это делает дальнейшую работу предметной и позволяет не выдавать аккуратную гипотезу за готовый диагноз.