Кейс

Модернизация 12-летней складской системы без остановки грузовиков

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

Have a nice dayHave a nice day12 мин чтения
Модернизация 12-летней складской системы без остановки грузовиков

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

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

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

Ситуация: система, держащаяся на памяти одного человека

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

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

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

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

Симптомы, которые все перестали замечать

Когда мы провели первые два дня, просто наблюдая за работой склада, издержки старой системы были повсюду — но стали настолько привычными, что никто уже не отмечал их как проблемы. Цифрам остатков доверяли быть неверными в предсказуемых пределах, поэтому каждый крупный заказ проходил ручную физическую проверку «на всякий случай». Новым сотрудникам требовались недели, чтобы стать полезными, потому что бо́льшая часть работы была неписаным фольклором. А система работала на операционной системе настолько старой, что её уже нельзя было патчить, в сети, о которой владелец втайне знал, что это инцидент безопасности, ждущий своего часа.

  • Точность учёта остатков держалась около 80%, поэтому сотрудники вручную перепроверяли подсчёты по всему важному — часами в день, молча.
  • Логика листа подбора не справлялась с нынешней планировкой склада, поэтому сборщики ходили по маршруту из папки, а не с экрана.
  • Ежемесячная сверка остатков занимала у двух человек бо́льшую часть трёх дней.
  • Административную часть программы могла запускать лишь одна машина, и если бы она вышла из строя, ни у кого не было ясного плана.
  • Ничто не было связано с онлайн-каналом заказов, добавленным компанией в 2019 году, — эти заказы перепечатывали вручную.
Угол складского офиса со старым бежевым настольным компьютером, на котором работает устаревшая программа, в окружении рукописных стикеров, распечатанной папки обходных решений и кружки кофе, тёплый документальный свет
Настоящая система была не на экране — она была в стикерах, в папке и в памяти одного человека.

Чего мы сознательно не делали

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

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

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

Подход: задушить старую систему, а не взорвать её

У разработчиков для этого паттерна есть привычное имя — подход «душителя» (strangler), названный в честь лианы, что обвивает дерево, пока не сможет стоять сама, а оригинал тихо исчезает. Старую систему не заменяют одним движением. Вокруг неё строят новые части, по одной перенаправляют на них реальную работу и дают старой системе сжиматься, пока оставшегося не станет достаточно мало, чтобы выключить, ни у кого не задерживая дыхание.

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

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

Части, которые были по-настоящему трудными

Было бы нечестно представить это гладким. Техническая работа была лёгкой частью. Трудные части были человеческими и процедурными, и это те же трудные части почти в каждом легаси-проекте.

Недокументированное правило, сломавшее функцию

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

Завоевать цех

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

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

Результаты год спустя

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

ПоказательДоПослеЭффект
Точность учёта остатков~80%~98%Ручные перепроверки в основном исчезли
Ежемесячная сверка~3 дня, 2 человека~полдня, 1 человекПримерно неделя труда возвращается в месяц
Онлайн-заказы, перепечатываемые вручнуюКаждыйНольКанал теперь питает остатки напрямую
Время выхода новичка на пользуНесколько недельНесколько днейФольклор теперь в программе
Одна хрупкая админ-машинаДаНетРаботает где угодно, с нормальным бэкапом
Округлённые, иллюстративные цифры одной модернизации склада за двенадцать месяцев.

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

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

Если вы сидите на такой системе

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

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

Есть старая система, которую вы боитесь трогать?

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

Узнайте, как мы модернизируем складские системы

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

Действительно ли можно заменить складскую систему без простоев?
Да — в этом весь смысл подхода по частям вместо ночного переключения. Старая система продолжает работать как страховочная сеть, пока каждая новая возможность строится, тестируется параллельно и обретает доверие лишь когда совпадает с реальностью. Вплоть до самого конца нет момента, когда склад не мог бы вернуться к старому способу. Сделанная так, миграция почти не замечается цехом.
Почему просто не купить готовую систему управления складом?
Иногда это верный ответ, и мы так и скажем, если это так. Но готовые платформы предполагают, что ваши процессы совпадают с их допущениями. Бизнес с десятилетием специфических, недокументированных обходных решений часто обнаруживает, что стандартный продукт подходит на 80% и борется с ним на оставшихся 20% — ровно в той части, что важна. Это решение стоит принимать осознанно, а не по умолчанию.
Сколько длится такой проект?
Для дистрибьютора с одним складом такого размера планируйте в месяцах, а не неделях — этот конкретный шёл примерно год от начала до конца, сознательно неспешно. Метод по частям меняет скорость на безопасность: на бумаге медленнее запуска «большим взрывом», но не несёт риска замороженного бизнеса, ждущего замену, которая так и не выходит до конца.
Каков самый важный первый шаг?
Честно задокументировать, что нынешняя система на самом деле делает — включая каждую таблицу и обходное решение, выросшие вокруг неё, — а затем очистить данные. И то и другое происходит до того, как строится какое-либо новое ПО. Прыжок сразу к новой технологии — это то, как проекты модернизации наследуют все старые проблемы и получают за них вину.
Что происходит со знанием, живущим в голове одного ключевого сотрудника?
Его захват — одна из главных целей, а не побочный эффект. Сопровождая этого человека и кодируя его недокументированные правила в новую систему, бизнес перестаёт зависеть от какого-либо одного человека в поддержании работы склада. В этом случае ключевой сотрудник вышел на пенсию во время проекта, и работа продолжилась без сбоев — что и есть ровно тот результат, ради которого модернизация затевалась.
Have a nice day
Have a nice day
Редакция

Have a nice day — это софтверная студия, которая помогает малому и среднему бизнесу перейти в цифру: автоматизация, ИИ и софт под заказ, который работает в повседневных процессах, а не только на слайдах.

Подходящие услуги