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


Михаил Савченко6 мин
Содержание7 разделов
  1. Четыре часа складываются из ожиданий
  2. Двойная бронь - проблема одновременного доступа
  3. Доступность - не поле «да или нет»
  4. Основную работу сделала не языковая модель
  5. Что остаётся человеку
  6. Сколько это стоило
  7. С чего начать

Четыре часа складываются из ожиданий

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

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

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

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

Двойная бронь - проблема одновременного доступа

Двойную бронь принято списывать на невнимательность, поэтому обычное лекарство - попросить сотрудников быть внимательнее. Оно не работает, и прежде чем что-то покупать, стоит понять почему.

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

Ошибку создал инструмент, а не люди. Чтобы её убрать, нужны две вещи: одна запись, в которой хранятся все брони, и проверка в момент подтверждения, а не только в момент заявки. Конфликты возникают в промежутке между «посмотрел» и «пообещал».

Доступность - не поле «да или нет»

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

Состояние в четверг утромНа площадкеМожно сдать в четверг
В аренде, возврат в средуНетДа, если возврат состоится
В аренде, работа затягиваетсяНетНет
В пути обратно с объектаНетЗависит от расстояния
Вернулась, ждёт осмотраДаНет
На обслуживанииДаНет
Забронирована, не подтвержденаДаНет
На месте и свободнаДаДа

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

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

Основную работу сделала не языковая модель

В этом проекте удивительно мало ИИ в том смысле, в каком это слово обычно продают.

ШагЧем делаетсяПочему
Проверка доступности и конфликтовПроверка в реальном времени по одной записиОтвечает по текущему состоянию каждой машины, а не по копии
Цена по прайс-листуПравилаЦена это обязательство, а не догадка
Договор и подтвержденияШаблоныУтверждённая формулировка обязана остаться утверждённой
Порядок отгрузки и уведомленияПравилаДетерминированная последовательность без суждений
Чтение заявки свободным текстомМодельНеструктурированный вход, который иначе перепечатывает человек
Классификация необычного запросаМодель, затем человекНужно суждение, поэтому модель только направляет запрос, а решает человек
Цены, документы и отгрузка работают на правилах, потому что обязаны вести себя одинаково каждый раз. Доступность проверяется в реальном времени, и верна она ровно настолько, насколько верна запись, по которой её проверяют.

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

Что остаётся человеку

Четыре вещи по замыслу остаются за человеком, а почему именно они, разбирают наши правила о том, где в процессе остаётся человек.

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

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

Сколько это стоило

4 чобработка брони, до
3 минпосле
Обработка брони сократилась с 4 часов до 3 минут, двойные брони исчезли совсем, сотрудники занимаются клиентами вместо календаря, а в пиковый сезон компания принимает в 2,5 раза больше работы. Проект занял 3 недели. Подробности на странице кейса по аренде оборудования.

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

С чего начать

Сначала измерьте, сколько времени проходит от заявки до отгрузки, и только потом оценивайте проект. Измеряйте по данным системы, а не по опросу сотрудников.

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

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

Что именно мы автоматизируем в прокатной компании, описано на странице ИИ-автоматизация для аренды оборудования и в процессе обработки заказов.

Часто задаваемые вопросы

  • Как на самом деле избавиться от двойных броней?

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

  • Нам придётся менять учётную систему?

    Нет, и в большинстве прокатных компаний это был бы дорогой способ решить дешёвую проблему. Почти у каждого оператора крупнее пары десятков единиц уже есть что-то для договоров и учёта склада. Часы теряются редко внутри этой системы, они теряются в ручной эстафете вокруг неё: между системой, общим ящиком, телефоном и тем, кто в этот момент оказался на площадке. Поэтому автоматизацию обычно подключают к тому, что уже есть, и вся работа идёт на стыках между системами, без миграции. Для бюджета это тоже важно. Замена системы занимает месяцы и грозит потерей истории, а автоматизация передач занимает недели и оставляет учёт там, где он уже ведётся. Мы запускаем 1-3 процесса за 2-4 недели как раз потому, что работа ограничена стыками.

  • Что должно быть правилом, а что моделью?

    Граница зависит от того, должен ли шаг что-то решать по своему усмотрению. Цена по прайс-листу, сборка документов из утверждённых шаблонов и последовательность шагов отгрузки полностью детерминированы. Они обязаны вести себя одинаково на одинаковых входных данных, их нужно уметь проверить постфактум, и вероятностный ответ здесь дефект, а не достоинство. Это правила. Доступность - прежде всего вопрос данных: система проверяет её в реальном времени по одной записи о состоянии каждой машины, и ответ верен ровно настолько, насколько верна эта запись. Языковая модель нужна там, где вход неструктурирован и человеку иначе пришлось бы читать и перепечатывать: заявка приходит свободным текстом в мессенджер в одиннадцать вечера, машина названа словами клиента, даты записаны в форме, которой не ждёт ни одно поле. Правилу очень трудно превратить такое сообщение в структурированный запрос, а модели легко. Чёткая граница нужна ещё и затем, чтобы систему можно было объяснить, когда что-то пойдёт не так: всегда понятно, какая из двух частей выдала ответ.

  • У нас сезонный бизнес. Стоит ли трёхнедельное внедрение?

    Сезонность - довод за. В пиковый сезон прокатная компания зарабатывает большую часть годовой выручки, и обычно именно ручная отгрузка решает, сколько заказов из этого пика удастся принять. Когда очередь растёт быстрее, чем координаторы её разбирают, узким местом становится уже не парк техники, а передача заявки из рук в руки, и заявкам отказывают, пока машины стоят свободными. Отсюда и цифра в 2,5 раза: компания уже отказывала в пиковых заявках, а быстрый путь от брони до отгрузки превратил отказы в принятые заказы. Внедрение занимает 2-4 недели, поэтому проект, начатый в межсезонье, работает до открытия сезона. Не окупается начало в разгар сезона: на вопросы во время внедрения должны отвечать те самые люди, которых пик уже загрузил целиком.

  • Что по-прежнему остаётся человеку?

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

AutomationOperationsEquipment RentalOrder Processing