Исключение это не случайность вне процесса, а ещё не записанная часть процесса. В этом уроке вы открываете журнал: что делает поток, когда приходит вход, не покрытый правилом, какая неисправность его останавливает, а какая позволяет продолжить, кто об этом узнаёт и как решение доходит до системы.
В прошлых уроках был собран поток и соединены две системы. В обоих исключение занимало одну строку: "путь исключения" в сборочном листе, "поведение при обрыве" в карте интеграции. Этот урок открывает работу за этими двумя строками. Что делает поток, когда приходит вход, который правило не покрывает, кто об этом узнаёт и куда записывается принятое решение.
Урок не предлагает избавиться от исключений. Исключение это не случайность вне процесса, а ещё не записанная часть процесса. Записанное, оно становится правилом; незаписанное, требует нового решения каждый раз.
Условие: поток из пятого урока и карта интеграции из шестого. Без потока нет и исключений; исключение рождается на краю работающего потока.
Когда их путают, путается и ведение. Исключение это случай, который правило не покрывает: система работает верно, но для встреченного входа нет записанного ответа. Неисправность это когда система работает неверно вопреки записанному.
На практике различие делается одним вопросом: если посмотреть на карту, есть там ответ для этого случая? Если есть, а система поступила иначе, это неисправность; если нет, исключение. Если одно и то же событие приходит два дня подряд, оно перестаёт быть исключением и становится недостающим правилом.
Вход или случай, который правило не покрывает. Лечение это решение; само решение попадает в запись, потому что его спросят во второй раз.
Система поступает иначе там, где записано правило. Лечение это исправление, и держится ли исправление, проверяется отдельно.
Если спор "исключение это или неисправность" затягивается, карта в этом месте неясна. Спор решается на карте, а не в системе.
Журнал помещается на одной странице, и каждая строка описывает одно исключение. Четыре столбца отвечают четырём вопросам, которые задаются при появлении исключения; когда столбец остаётся пустым, это исключение ничего не переносит в следующий раз.
Настоящая польза журнала видна при второй встрече. В первый раз решение занимает время; во второй применяется записанное в журнале, и спор не открывается заново.
Четвёртый столбец держит журнал живым. Если он пуст, журнал становится архивом; если заполняется, карта процесса растёт сама.
Большинство потоков собирается на допущении, что вход придёт в ожидаемом виде. Неожиданный вход это место, где это допущение ломается: форма уходит заполненной наполовину, поле, считавшееся обязательным, приходит пустым, система источник тихо меняет формат поля.
Общее у них то, что большинство не выдаёт сообщения об ошибке. Поток продолжает работать, и выходит результат, сделанный из неполных данных. Поэтому ответ на неожиданный вход пишется на входной стороне карты, а не на выходной.
Запись возникла, но часть полей пуста. Решение: запись придерживается, пишется как есть или переспрашивается у отправителя.
Если поле, считавшееся обязательным, приходит пустым, обязательность на деле не была поставлена. Разница между словарём полей и потоком выходит здесь.
На стороне источника меняется формат даты или телефона. Поток продолжает читать по-старому, и значение тихо портится.
В шестом уроке выбран ключ сверки; этот урок берёт случаи, когда тот ключ не держит. Один и тот же человек пишет во второй раз, одна и та же форма уходит дважды, один и тот же заказ входит по двум каналам.
Двойник это тихо растущая беда: каждый по отдельности выглядит верно, а в сумме отчёт раздувается и к клиенту обращаются дважды. Записать решение заранее обходится дешевле, чем убирать после появления записей.
Правило сверки одна из первых строк журнала, потому что встречается часто, а его решение легко забывается.
Останавливать поток при каждой неисправности выглядит надёжно, но останавливает работу; не останавливать вовсе держит работу, но растит неверный результат. Решение принимается по каждой неисправности и пишется на карте.
Мерило такое: когда этот шаг работает неверно, можно ли вернуть результат? Если можно, поток может продолжать, а запись помечается. Если нельзя, поток останавливается и ждущий человек узнаёт об этом.
Шаги, результат которых не вернуть: сообщение наружу, платёж, стойкое удаление. В сомнении предпочитают остановку.
Случаи, задевающие одну запись и обратимые. Запись помечается, поток идёт с остальными, а помеченные записи проходят в конце дня.
Самый тяжёлый случай: часть шага прошла. Если для этой возможности не записан возврат, запись начинает выглядеть по-разному в двух системах.
Куда уходит оповещение, значит столько же, сколько само оповещение. Оповещение, падающее в общий ящик, чаще всего ничья работа; канал, который видят все, может стать каналом, за который никто не отвечает.
Строка оповещения просит имя человека. Кто подменяет, пока этого человека нет, стоит в той же строке, потому что исключения не ждут выходных.
Текст оповещения тоже часть решения: если в нём написано, какая запись, на каком шаге и по какой причине остановилась, смотрящий может решить, не входя в систему.
Запись неисправности единственный источник, который потом рассказывает, что случилось. Она может лежать внутри потока, в собственном журнале средства или в отдельной таблице. Важно не место, а то, что её можно искать.
У чтения записи свой порядок. Без порядка смотрят обычно последнюю строку, а последняя строка чаще показывает итог, а не причину.
Какая запись, какой промежуток времени. Без опознавателя поиск идёт от даты, и соседние записи тоже видны.
Что происходило шаг за шагом. Читать от первого отклонения, а не от строки итога, показывает причину.
Пришли ли данные в ожидаемом виде? Немалая часть неисправностей выходит здесь, и сама система оказывается сработавшей верно.
Каждому потоку нужна дверь ручного вмешательства: продолжить остановленную запись, вернуть неверную, пройти список ожидания руками. Без двери вмешательство делается внутри средств и не оставляет следа.
Вмешательство это исключение, и оно пишется в журнал. Без этого рождаются две беды: не вспоминается, что было сделано, когда тот же случай приходит снова, и результат системы перестаёт сходиться с работой, сделанной руками.
То, что ручное вмешательство удобно, не слабость потока, а его живучесть. Поток без двери на первом же исключении превращается в процесс, ведомый руками.
Самая дорогая неисправность та, что не выдаёт неисправности. Поток выглядит зелёным, записи создаются, никто не получает оповещения; а полученный результат неверен. Задетый одной фразой в шестом уроке, это и есть настоящий предмет ведения исключений.
Источник тихого сбоя чаще на входной стороне: пустое значение падает до значения по умолчанию, формат читается неверно, сопоставление держится за другую запись. Поскольку система внутри себя согласована, она и не сообщает о себе.
Общее у них вот что: во всех система говорит "успешно". Поэтому тихий сбой ловится измерением, а не оповещением.
Путь к этому проходит через недоверие к собственному отчёту системы. Сделанные вместе, три измерения выводят на поверхность большую часть тихих сбоев.
Все три ставятся как недельная привычка, и пишется, кто их делает. Измерение без хозяина бросают на первой же загруженной неделе.
Число входов сравнивается с числом выходов. Разница показывает записи, тихо выпадающие по дороге.
Одна и та же запись в двух системах открывается рядом. Смотреть на ключевые поля оказывается достаточно, вместо поля за полем.
Несколько случайных записей прослеживаются от начала до конца. Это наблюдение, а не измерение; здесь видны отклонения, которых отчёт не показывает.
Итог измерения пишется в журнал. Недели без отклонений пишутся тоже, потому что "посмотрели и чисто" это тоже запись.
Не всякое исключение переносится в систему. Случай, увиденный однажды, заносится и ждёт; повторяющийся становится правилом. Перенести рано значит без нужды запутать поток, перенести поздно значит принимать одно и то же решение снова и снова.
Мерило это частота и цена: если то же исключение повторяется или хотя бы раз дало необратимый результат, пишется правило. Когда правило записано, обновляются и карта процесса, и словарь полей, иначе карта отстаёт от действительности.
Когда этот шаг закрывается, исключение не исчезает, а становится правилом. Журнал тем самым превращается в дневник обновлений карты процесса.
Офис выбрал пилотную задачу, записал её процесс, составил словарь полей, выбрал средство, собрал первый поток и соединил две системы. Теперь поток работает, и в первую же неделю подряд приходят три случая.
Ни один из трёх не записан на карте. Ответственная за офис заносит каждый в журнал и пишет решение; к концу недели две строки из трёх становятся правилами.
Первая строка: в запросе, пришедшем с портала, поле телефона пусто. Решение принимается так, что запись не пишется в таблицу сопровождения и падает в список ожидания; ответственная проходит список в конце дня. После того как тот же случай повторяется трижды, он превращается в правило и вносится в карту.
Вторая строка: один и тот же человек пишет с двух разных объявлений, и в таблице сопровождения открываются две записи. Решение: второй запрос входит заметкой под тем же человеком. Поскольку это решение недостающая половина правила ключа из шестого урока, оно переносится в систему сразу.
Третья строка: портал меняет формат поля даты, и встречи сдвигаются на день. Сообщения о неисправности нет, записи выглядят годными. Отклонение ловится не недельным подсчётом, а выборкой: даты двух случайно выбранных записей не сходятся с объявлением. Преобразование формата исправляется, задетые записи возвращаются вручную, а вмешательство пишется в журнал.
К концу недели офис замечает, что оповещения уходят в общий ящик и туда никто не смотрит. Строка оповещения переводится на имя человека, и подменяющий человек тоже записывается.
Две строки из трёх стали правилами, одна осталась в наблюдении. Ценность журнала видна здесь: записано не только какое решение принято, но и какое дошло до системы.
На этой неделе откройте журнал и запишите, что происходит на краю вашего работающего потока. Ждать нового исключения не нужно; каждое ручное вмешательство за последние две недели уже строка исключения.
Скачать журнал исключений (xlsx) · журнал на одну страницу со столбцами какое исключение, когда появилось, как решили и дошло ли до системы; разделы оповещения, ручного вмешательства и недельного измерения тоже внутри.
Нижеследующее рождается не из самого исключения, а из того, что исключение не ведётся. Общее у них вот что: ни одно не выглядит в системе как неисправность.
Решение принимается в разговоре и не заносится. Когда тот же случай приходит во второй раз, принимается другое решение, и две записи обрабатываются по-разному.
Отклонение, задевающее одну запись, останавливает весь поток. Через некоторое время оповещения выключают, и настоящая останавливающая неисправность тоже остаётся невидимой.
Оповещение уходит всем, и никто его не берёт. Непросмотренное оповещение даёт тот же итог, что и неотправленное.
Запись правится вручную, но кто что сделал, не пишется. Когда та же запись ломается на следующей неделе, причину искать негде.
Строка "все успешно" не показывает тихого сбоя. Пока измерение не поставлено, неверный результат неделями считается верным.
Случай, увиденный однажды, добавляется в поток условием. Поток с каждым исключением запутывается чуть больше, и уход за ним тяжелеет.
Если по завершении первой недели потока на каждый пункт этого списка есть ответ, ведение исключений считается поставленным.
Слова, которые встречаются в разговорах об исключениях. Давать одному слову одно значение держит журнал читаемым и на второй неделе.
В этом уроке вы записали край потока: отличили исключение от неисправности, открыли журнал, определили пути оповещения и ручного вмешательства и сделали тихий сбой видимым через измерение. Следующие уроки берутся за введение команды в процесс и измерение итога.
Если хотите продолжить с вышедших уроков, на очереди модуль о последовательном сужении неисправности.
Лист неисправности, способ деления пополам и стойкое исправление. Журнал этого урока питает его.
Карта интеграции и поведение при обрыве. Часть здешних исключений рождается там.
Весь раздел обучения и модули, добавленные с тех пор.
Если хотите открыть журнал исключений вместе, напишите нам, и мы заполним первые строки.
Запросить через WhatsApp