Skip to content
Case Study

Решение, определившее трёхнедельное внедрение в прокате

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


Михаил Савченко·19 августа 2026 г.·4 мин чтения
Case StudyOperationsEquipment RentalMethodology

С чем нас оставили замеры

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

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

Дальше было три варианта. Два из них занимали месяцы.

Три варианта

ВариантСрокПочему отвергнут или выбран
Заменить учётную системуМесяцыЧинит одно поле миграцией всего, посреди сезона
Поставить модель поверх таблицНеделиОтвечает по неверным данным быстрее и непрослеживаемо
Одна главная запись, реальные состояния3 неделиЧинит именно то, что было сломано

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

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

Почему модель эту работу не получила

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

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

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

Что изменило выбранное решение

Две вещи, и вторая весила больше.

Доступность перестала быть одним полем «да или нет» и стала семью явными состояниями, поэтому машина, вернувшаяся и ждущая осмотра, машина в пути и машина, забронированная без подтверждения, перестали показываться свободными.

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

Ни одна из правок не экзотика. Ни одна не потребовала новых технологий. Обе потребовали решения, которое кто-то должен был принять и которого никто не принимал.

Цена, которой нет ни в одном предложении

Сделать одну запись главной значит, что кто-то должен перестать вести свою копию.

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

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

Что это дало

Путь от брони до отгрузки ушёл с 4 часов до 3 минут. Двойные брони исчезли. Ёмкость пикового сезона выросла в 2,5 раза той же командой, а внедрение уложилось в 3 недели. Полный набор на странице кейса.

Три недели это следствие решения, а не скорости. Два отвергнутых варианта не были медленными версиями того же проекта, это были другие проекты, и один из них закончился бы примерно к концу сезона.

Переносимая часть

До согласия на что-либо найдите факт, о котором две ваши системы расходятся, и решите, какая из них главнее.

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

Часто задаваемые вопросы
  • 01Почему не поменять учётную систему, раз проблема была в модели данных?+

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

  • 02Чем плоха была языковая модель поверх существующих таблиц?+

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

  • 03Что конкретно изменило выбранное решение?+

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

  • 04Чего это решение стоило?+

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

Читать дальше