Все в порядке!
Все в порядке!

Чем хорош малый бизнес, особенно на своем старте? Ему не нужны сложные инструменты: он в состоянии увидеть состояние дел расчетами «на коленке», а план действий уместить карандашом на трамвайном билетике.

А когда бизнес подрастает? Скажем, его месячная выручка становится 100М+, количество сотрудников исчисляется сотнями, а бизнес-процессы усложняются настолько, что перестают быть прозрачными, покрываются «туманом войны».

Эта история про то, как инструмент, понравившийся команде на старте бизнеса, довел её до убытков в десятки миллионов при росте оборотов, когда компания стала крупнее. И как прозрачность вернула контроль и разблокировала рост выручки на 50%.

О заказчике

Многопрофильная транспортная компания ворвалась в самосвальные грузоперевозки и очень быстро превратилась в регионального лидера. Она агрессивно захватывала рынок за счет расширения собственного парка и привлечения кредитных средств, ставила перед собой амбициозные задачи: увеличить автопарк в 10 раз за 5 лет с 50 до 500 автопоездов, брать любые заказы по любым ставкам, вытеснять конкурентов объёмом.

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

Проблема: рост без прозрачности

Компания растёт! Но, вдруг, отрицательно?
Компания растёт! Но, вдруг, отрицательно?

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

Пример такого решения: закупили технику в лизинг на 250 млн рублей для перевозки металлического лома под конкретного клиента, но контракт сорвался, а техника встала в простой на год. Убытки — 4,5 млн рублей в месяц.

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

Техническая первопричина

На старте бизнеса практически вся работа уместилась в одну таблицу, ее создали в Excel и назвали «Главным Реестром». 

Конечно, у пользователей были и индивидуальные таблички, и общие на отдел, но всё стекалось в «Главный реестр» — просто так было удобнее.

Там оказались практически все бизнес-процессы:

  • коммерческие ставки с клиентами и подрядчиками,

  • ежедневное планирование рейсов и контроль их прохождения,

  • учет внутреннего документооборота (транспортные накладные, путевые листы и пр.),

  • выставление документов конечным клиентам.

«Главный реестр» переехал в Google Sheets, чтобы обеспечить совместную работу пользователям, вместил в себя 60+ столбцов, и оброс не самыми очевидными правилами. Одно из правил звучало так: «Если документы получены от водителя, мы покрасим поле с номером накладной желтым цветом, если выставлены клиенту — синим. Но если возникло что-то необычное - там будет комментарий».

Попытки автоматизации снизу, от пользователей, шли двумя путями:

  1. Дублирование функциональности. Составлялось ТЗ, копирующее логику «главного реестра» без разделения общего бизнес-процесса на подпроцессы.

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

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

Диагностика и подход к решению

Как мы видели задачу.
Как мы видели задачу.

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

Приняли решение разработать собственный продукт под конкретные нужды Заказчика. Требования:

  • Фокус на экономическом юните — рейс как основа учёта.

  • Разделение бизнеса на подпроцессы — планирование, оперативка, документооборот, расчёты.

  • Интеграция с купленной 1С УАТ — чтобы сократить сроки разработки, задействовав стандартный функционал «коробки».

  • Аналитика с разных ракурсов — возможность изучать деятельность под любым углом.

Что построили

Разделили функционал «главного реестра» на отдельные подпроцессы:

Повесили на 1С УАТ:

  • Справочники НСИ (номенклатура, контрагенты, техника)

  • Ежемесячное планирование объёмов вывоза продукции (заявки клиентов)

Реализовали самостоятельно:

  • Интеграцию с PostgreSQL-сервером 1С через собственный бэкенд

  • Ежедневное планирование рейсов, расстановку машин на направления

  • Оперативное внесение изменений в рейсы по ходу их прохождения

  • Обработку входящих документов от водителей и подрядчиков

  • Выставление расчетных документов клиентам

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

Наконец-то, ФИО водителя или марка машины, или любое другое поле данных, получившее формализацию, стало однозначным (одного только Иванова могли в «главном реестре» писать десятком разных способов), и нам открылся простор для бизнес-аналитики. А консолидация информации на собственный SQL сервер позволила использовать витрины данных. В итоге, мы создали около 100 витрин как для анализа финансовых показателей компании, так и для оперативной работы сотрудников.

Стек технологий: PostgreSQL, Python, FastAPI, SQLAlchemy, TypeScript, React, MUI DataGrid Pro, Metabase, Docker, GitLab CI

Результаты внедрения

Система сделала самосвальный бизнес Заказчика прозрачным. Выяснилось: компания несёт убытки, оправдать которые локальным кассовым разрывом уже невозможно.

Правильно подобранная аналитика финансовых показателей позволила менеджерам увидеть и сконцентрироваться на реальных проблемах, которые ранее не рассматривались:

  • Реальная, а не рассчитанная на этапе продажи, экономика рейсов

  • Лизинговая и кредитная нагрузки в цифрах

  • Простои транспорта в результате ДТП, отсутствия профильных грузов (ломовозы в простое)

  • Эффективность работы водителей

  • Простои в ремонтах

Разделение процессов по зонам ответственности для разных отделов заработало сразу без потери работоспособности. В дальнейшем производительность отдельных отделов выросла кратно: расчётный отдел стал выставлять документы конечным клиентам в течение 3-5 дней с момента поступления информации о рейсе против 2-3 недель при работе в «Главном реестре». Как результат, сократили привлечение кредитных средств в оборотку и снизили юридические риски несвоевременной оплаты. Экономический эффект от 12 млн в год.

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

Заказчик смог увеличить собственную выручку на 50% — с 90 до 135 млн рублей в месяц. И отправить «Главный реестр» на пенсию.

Вывод

Система не решила проблемы Заказчика — она их показала.
Система не решила проблемы Заказчика — она их показала.

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

Система развеяла «туман войны». Выяснилось, что компания теряет деньги при росте оборотов. Дальше — работа команды Заказчика: перепрофилировали технику, закрыли убыточные направления, выстроили планирование.

Признаки, что ваш Excel превратился из инструмента в проблему:

  • Им пользуются больше 3 человек одновременно

  • Есть неочевидные правила, типа «если поле желтое — одно, если синее — другое»

  • Кто-то говорит «не трогай эту формулу»

  • Вы не можете за 5 минут ответить на вопрос «какие направления приносят деньги, а какие — убытки»

Если узнали свою ситуацию — пора делать бизнес прозрачным.