Обучение · Урок 5

Как собрать первую автоматизацию?

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

Чему вы научитесь в этом уроке

Четыре урока вы готовились: выбрали задачу, записали её процесс, определили поля и выбрали инструмент. В этом уроке вы собираете первый поток. Пять частей, представленных в первом уроке, здесь переходят в дело.

Урок не разбирает меню конкретного инструмента. Разбирается порядок сборки: что собирается первым, что проверяется на каждом шаге, через какие ворота идёт выход в работу. Этот порядок держится с любым выбранным инструментом, потому что пять частей в любом инструменте те же пять частей.

Цели урока

  • Заполнить сборочный лист пятью частями
  • Собрать триггер отдельно и проверить его
  • Добавлять шаги по одному и проверять при каждом добавлении
  • Записать условия и путь исключения внутрь потока
  • Работать с пробными данными, а не с живыми
  • Выходить в работу через узкие ворота и держать первую неделю под присмотром

Предварительные условия: карта процесса из второго урока, словарь полей из третьего и выбранный в четвёртом инструмент. Без всех трёх сборка опирается на догадку.

Что берёт на себя сборка?

Сборка берёт на себя записанное правило. Она не берёт ни решение, ни суждение, ни то, как решается исключение; всё это уже записано в карте, и сборка лишь повторяет написанное.

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

Сборка берёт

Слежение за триггером, выполнение шагов по порядку, измерение условия, перенос данных и пометку исключения. Всё это работа, записанная в карте.

Сборка не берёт

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

Знак границы

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

Сборочный лист: пять частей

Сборочный лист — это запись на одну страницу, которую вы заполняете до сборки потока. Он берёт пять частей из карты процесса и переводит их на язык инструмента; собирая, вы смотрите в этот лист, а не в экран.

1 Триггер

Событие, запускающее поток, и канал, который его приносит. Отправка формы, входящее сообщение, время, запись, сменившая статус. Пишется одно ясное начало.

2 Шаги

Работы, выполняемые по порядку, каждая со своим выходом. Номера из карты сохраняются; в сборке их называют теми же номерами.

3 Условия

Развилки и мерило каждой. Мерило пишется именем поля, а не толкованием, затем переводится в выражение, которому у инструмента есть соответствие.

4 Интеграции

Подключаемые системы, в каком направлении идут данные и какое поле какому соответствует. Сопоставление полей выписывается здесь поштучно.

5 Путь исключения

Что происходит, когда ожидаемый путь не идёт: где ждёт запись, кого извещают, как работу перехватывают руками. Это самая пропускаемая часть сборки.

Пока лист не заполнен, в инструмент не заходят. Заполненный лист говорит, что вы собираете, а не какой экран открыть; когда эти два смешиваются, сборка идёт в порядке, который предлагает инструмент, и карта остаётся позади.

Шаг 1: соберите триггер отдельно

Начните сборку с триггера и соберите сперва только его. Не добавляя за ним ни единого шага, увидьте, что триггер действительно срабатывает: просыпается ли поток, когда приходит событие, содержат ли принесённые данные ожидаемое.

Эта первая проверка несёт на себе всю остальную сборку. Когда триггер собран неверно, каждый следующий шаг идёт на неверных данных, и ошибка показывается в самом конце; рассмотренная здесь отдельно, она понятна за минуту.

Проверка триггера

  • Породите событие по настоящему, не запускайте его руками
  • Подтвердите по журналу, что поток проснулся
  • Сравните имена полей входящих данных со словарём полей
  • Убедитесь, что обязательные поля приходят заполненными
  • Породите то же событие дважды и посмотрите, вышла одна запись или две
  • Попробуйте, что будет, если оно придёт неожиданным каналом

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

Шаг 2: добавляйте шаги по одному

Вместо того чтобы собрать все шаги и попробовать в конце, добавьте один шаг и проверьте его. Потом ещё один. Такой темп кажется медленным, но когда выходит неисправность, не приходится искать, какой шаг её породил.

Вопрос после каждого шага один и тот же: выход этого шага — тот ли выход, что записан в карте? Если отличается, остановитесь здесь. Когда отличия копятся, результат, видимый на последнем шаге, превращается в смесь неясного происхождения.

Один шаг, одна проверка

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

Сверьте выход с картой

Запись, сообщение или обновление поля, которые дал шаг, те же, что выход в карте? Если нет, под вопрос попадает не только шаг, но и карта.

Сохраните номер

Номер шага из карты используется и в сборке. Шаг, называемый тем же номером, сокращает разговор в команде и позднейшую диагностику.

Шаг 3: запишите условия

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

Собирайте оба пути в каждом условии. Собрать только ожидаемый путь и оставить второй пустым значит, что запись, попавшая на тот путь, тихо встанет. Оставленный пустым путь привязывается к исключению.

При сборке условия

  • Пишите мерило именем поля, а не толкованием
  • Проверьте, чувствительно ли сравнение к заглавным буквам и пробелам
  • Посмотрите, в какую сторону уходит условие, когда поле приходит пустым
  • Убедитесь, что каждый путь привязан к шагу
  • Оставьте путь для записи, не подходящей ни к одному
  • Если два условия ловят одну запись, запишите, какое проходит первым

Шаг 4: подключите интеграции

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

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

При сборке интеграции

  • Выпишите сопоставление полей поштучно: поле источник, поле приёмник, вид записи
  • Проверьте преобразование на полях с видом записи, таких как дата и телефон
  • Убедитесь, что обязательные поля на стороне приёмника заполняются
  • Определите, на какой стороне ждёт запись, когда связь обрывается
  • Запишите, что происходит при истёкшем доступе
  • Убедитесь, что возвращённый ответ читается, когда другая сторона отказывает

Последний пункт — дверь к тихой неисправности из более позднего урока. Когда возвращённый ответ не читают, запись не прошла, а поток выглядит успешно завершённым.

Шаг 5: соберите путь исключения

Путь исключения — самая откладываемая и самая дорогая часть сборки. Причина отсрочки проста: как только нормальный поток пошёл, сборка выглядит законченной. Однако поток, сочтённый законченным, тихо встаёт на первом же непохожем случае.

Путь исключения делает три вещи: не теряет запись, извещает кого то и оставляет место для перехвата работы руками. Все три записаны в карте; сборка лишь ставит их в поток.

При сборке пути исключения

  • Если обязательное поле пусто, остановите поток, не давайте ему тихо пройти
  • Сделайте видимым, где ждёт остановленная запись
  • Обеспечьте уход сообщения человеку или роли
  • Пусть в сообщении говорится, какая запись ждёт
  • Попробуйте путь перехвата руками, действительно ли запись открывается
  • Оставьте место, где видно число записей, упавших в исключение

Проверяйте каждый шаг отдельно

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

Проверяйте на пробных данных. Проверка на живой клиентской записи при ошибке может привести к тому, что неверное сообщение дойдёт до настоящего клиента. Пробная запись хочет узнаваемого имени и хочет, чтобы её потом можно было убрать.

Правила пробных данных

  • Пусть пробные записи узнаются по имени и не смешиваются
  • Пусть пробный телефон и пробный адрес будут вашими
  • Шаги, уходящие во внешние системы, держите сперва закрытыми и проверьте выход глазами
  • Уберите пробные записи, когда проверка закончится
  • Перед уборкой перечислите, какие записи были пробными
  • Перед выходом в работу убедитесь, что пробных записей не осталось

Выходите в работу через узкие ворота

Выйти в работу — не значит открыть поток и ждать. Узкие ворота означают, что поток сперва идёт на ограниченном входе: то, что приходит одним каналом, один район, записи одного сотрудника. Так, когда что то идёт не так, число затронутых записей остаётся ограниченным.

Поток, прошедший узкие ворота, расширяют после нескольких дней наблюдения. Расширение делается так же: ещё один канал, ещё один район. При каждом расширении повторяются те же проверки.

При установке узких ворот

  • Пускайте поток только на записях, приходящих одним каналом
  • Держите ручной запас открытым: команда может делать ту же работу руками
  • Пересмотрите поштучно первые записи, которые дал поток
  • Шаг, выход которого доходит до клиента, оставьте на самый конец
  • Путь отката попробуйте до сборки
  • Дату и мерило расширения запишите с самого начала

Первая неделя: присмотр и ручной запас

Первую неделю поток идёт, но под присмотром. Присмотр значит раз в день глазами просматривать записи, которые даёт поток. Это не недоверие, а измерение: как то, что вы собрали в этом уроке, ведёт себя относительно исходного значения, записанного в первом.

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

Сделать в первую неделю

  • Раз в день просматривайте записи, которые даёт поток
  • Считайте записи, упавшие в исключение, и записывайте их причины
  • Запишите первое замечание от команды, поймите его до исправления
  • Измерьте исходное значение снова тем же способом
  • Держите ручной запас открытым, решение о его снятии примите в конце недели
  • В конце недели обновите лист: запишите всё, что изменилось при сборке

Разобранный пример: агентство недвижимости собирает

Агентство недвижимости готовилось четыре урока: регистрация обращений выбрана пилотом, вышла карта процесса, определились поля и выбран no-code инструмент. Теперь оно собирает.

От листа до первой недели

Сборочный лист: триггер — падение новой заявки с портала. Шаги: завести запись, назначить консультанту по району, отправить клиенту подтверждение получения, напомнить на следующий день, если ответ не ушёл. Условие: совпадение района. Интеграции: портал, система портфеля, мессенджер. Исключение: если район не совпал, запись ждёт в общем пуле агентства и руководителя извещают.

Триггер: агентство отправляет с портала настоящую пробную заявку. Поток просыпается. Входящие поля сверяются со словарём; поле, которое портал зовёт контактом, в словаре оказывается телефоном, и сопоставление идёт в лист.

Шаги: сперва собирается и проверяется только шаг, заводящий запись. Выход совпадает с выходом в карте. Затем добавляется шаг назначения и проверяется снова. Шаг подтверждения оставляют напоследок, потому что его выход доходит до клиента.

Условие: при сборке совпадения района выходит разница в заглавных буквах: портал шлёт KADIKOY, а система портфеля держит Kadikoy. Сравнение делают нечувствительным к регистру, и это пишут в лист.

Интеграция: на шаге, пишущем в систему портфеля, обязательное поле остаётся пустым, и другая сторона отказывает. Поскольку возвращённый ответ не читали, поток с первой попытки выглядел успешным; его правят так, чтобы ответ читался.

Исключение: отправляется пробная заявка с несовпавшим районом. Запись ждёт в общем пуле, сообщение уходит руководителю, и в сообщении названа запись. Пробуют перехват руками, и запись открывается.

Узкие ворота: поток открывают только для заявок с одного портала. Остальные каналы продолжают идти руками. Записи первого дня пересматривают поштучно.

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

Упражнение: сделать на этой неделе

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

Сделать на этой неделе

  • Заполните сборочный лист пятью частями, до входа в инструмент
  • Соберите триггер отдельно и проверьте его настоящим событием
  • Добавляйте шаги по одному, сверяя выход с картой при каждом добавлении
  • Соберите оба пути условий, оставьте путь для записи, не подходящей ни к одному
  • Запишите сопоставление полей в лист и проверьте преобразование на полях с видом записи
  • Соберите путь исключения и действительно попробуйте перехват руками
  • Уберите пробные записи, затем выйдите в работу через узкие ворота
  • Первую неделю раз в день просматривайте записи и обновляйте лист

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

Скачать сборочный лист (xlsx) · лист на одну страницу, заполняющий пять частей; разделы выхода в работу и первой недели тоже внутри.

Частые ошибки

Заходить в инструмент без заполненного листа

Экран инструмента навязывает свой порядок, и сборка отрывается от карты. Лист — единственная бумага, говорящая, куда смотреть при сборке.

Собрать всё и попробовать в конце

Когда выходит неисправность, какой шаг её породил, остаётся неясным. Темп «один шаг, одна проверка» будто удлиняет сборку, но укорачивает диагностику.

Проверять на живых данных

При ошибке неверное сообщение может дойти до настоящего клиента. Пробная запись хочет узнаваемого имени и уборки по окончании проверки.

Собирать один путь условия

Запись, попавшая на неожиданный путь, тихо встаёт. В каждом условии собираются оба пути, и для не подходящей ни к одному остаётся путь.

Не читать возвращённый ответ

Когда другая сторона отказывает, поток выглядит успешно завершённым. Запись не прошла, и никто этого не замечает.

Рано снимать ручной запас

Первая неделя — неделя измерения. Со снятием запаса поток становится единственным путём; это решение приходит после измерения.

Контрольный список

Прежде чем поток выйдет в работу, стоит уметь сказать «да» каждому пункту ниже.

Список сборки

  • Сборочный лист заполнен пятью частями
  • Триггер собран отдельно и проверен настоящим событием
  • Каждый шаг после добавления проверен отдельно
  • Выходы шагов сверены с выходами в карте процесса
  • В каждом условии собраны оба пути, ни один путь не остался открытым
  • Сопоставление полей записано, преобразование на полях с видом записи проверено
  • Подтверждено, что возвращённые ответы читаются
  • Путь исключения собран, сообщение уходит, перехват руками испробован
  • Пробные записи убраны
  • Узкие ворота определены, ручной запас открыт
  • Записаны план присмотра первой недели и день обновления листа

Словарь

Термины, звучащие в разговорах о сборке. Говорить на одном языке с тем, кто собирает, значит сократить сборку.

Что дальше

В этом уроке вы собрали первый поток, провели его через узкие ворота и завершили первую неделю под присмотром. Следующие уроки посвящены росту потока: соединению систем между собой, ведению исключений, вводу команды в процесс и измерению результата.

Если хотите продолжить по вышедшим урокам, дальше идёт модуль о том, куда смотреть, когда поток идёт не так, как ждали.

Урок 6: Когда автоматизация не работает

Тихие неисправности, лист неисправности, деление пополам и стойкие исправления.

Урок 4: Выбор инструмента

Оценка по семи критериям. Каким инструментом идёт эта сборка, решается там.

Все уроки

Раздел обучения целиком и добавленные позже модули.

Если хотите собрать первый поток вместе, напишите нам, и мы заполним лист рядом с вами.

Запросить через WhatsApp

Частые вопросы

Сколько занимает сборка?
Узко удержанный пилот обычно собирается за несколько присестов. Затягивающиеся сборки — это в основном сборки с неполной картой; как только после входа в инструмент приходится рождать решение, срок перестаёт быть предсказуемым.
Нужно ли уметь программировать?
Это зависит от выбранного инструмента. Порядок и проверки этого урока применимы и без написания кода; разбирается не работа с инструментом, а какая часть собирается в каком порядке и что проверяется на каждом шаге.
Сколько проверять до выхода в работу?
Мерило — охват, а не время: каждый шаг карты проверен отдельно и хотя бы один путь исключения действительно испробован. Когда эти два сделаны, узкие ворота можно проходить.
Что делать, если поток встал в первую неделю?
Ради этого ручной запас и остаётся открытым. Работа идёт руками, вставшая запись отмечается, причина записывается. Исправление не обязано быть в тот же день; исправление без понимания обычно рождает вторую неисправность.
Можно ли скопировать тот же поток на другую задачу?
Скопировать можно, но сперва стоит написать карту процесса той задачи. Поток, скопированный без карты, переносит решения исходной задачи в целевую, и расхождение выходит на первом исключении.