Найти тему
IT-Metla

История про склад (как мы пилили WMS систему с нуля)

Оглавление

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

Но спустя 12 лет в IT-проектах в самых разных сферах, я могу с уверенностью сказать, что все, что касается складов и оптимизации процессов на них – это моя любовь.

Первый раз я попала на огромный склад в 2018-м году. Удивило все. Пространство – поднимаешь голову, а потолок где-то там далеко и все завалено товарами. Люди – все куда-то несутся и что-то делают, как муравьи. Техника – ВЭШ (высотный электроштабелер, уверена вы не знали, как они называются) — снует туда-сюда по своим выделенным дорожкам. А еще экраны, развешанные повсюду, на которых гоняют смачно-жуткие ролики про безопасность на складе. О том, например, как Дунечка (какой-нибудь комплектовщик) проливает масло (упало с полки и разлилось), и на этом масле сталкиваются две тележки, одна из них въезжает в ближайший стеллаж и заваливает всю аллею, хороня под грудами товаров людей и технику… Типа ... "Господа, будьте осторожны, не проливайте масло"..

Но мы сегодня о хорошем. И поскольку статья запланирована как начало целого цикла статей, посвященных складам и логистике, то приоткрою карты и расскажу, о чем же буду писать дальше. Хочется познакомить читателя с устройством склада, процессами на нем, проблемами, интересными историями, технологиями. Хочется рассказать, какие проблемы приходилось решать, пока мы в течение двух лет "писали" с нуля систему управления складом (WMS), а также (и это самое важное!), про роль бизнес-аналитика во всем этом безобразии. Осторожно, вредные советы включены!

Очень надеюсь что запала хватит на целый цикл!

Итак, у нас, у бизнес-аналитиков, принято в начале обозначить контекст.

2018-й год. Апрель. Звонок от проектного менеджера.

Проектный менеджер: "Оля, собираем команду, чтобы строить сложную большую систему управления складом. У тебя есть опыт в этой области?"

Оля: "Нет"

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

Оля: "Ок…" (*аналитикам не привыкать въезжать в новый домен за недельку-другую).

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

Оля: (*инструкции из SAP – эээ, ок… вспоминая бытность ABAP-разработчиком в течение 3-х самых ужасных месяцев в своей карьере). "Да, конечно, погнали".

Спустя несколько десятков воодушевляющих инструкций комплектовщиков, приемщиков, грузчиков, старших смены и прочих…Любимая инструкция, как щас помню, "Хвостовая волна комплектации"...

Все еще 2018 год. Все еще апрель. Командировка в Подмосковье. Добрались до Москвы и затем на такси еще часа три.

Приехали, знакомимся с директором по операциям.

Оля: "Здравствуйте! Мы приехали к Вам строить большую и сложную систему управления складом! Мы с Вами кажется надолго, минимум на год!"

Директор по операциям: "Да? Ну вот решите нашу насущную проблему с динамическим размещением и тогда посмотрим... До середины мая модуль должен быть разработан и запущен в продакшн".

Т.е. как это… Вроде же контракт подписан на несколько другое… Да и середина мая уже вот она, да еще и майские праздники... А контракт оказывается НЕДОподписан слегка.

Но, как говорится, хочешь интересный проект – «засучи рукава и вперед на баррикады».

Оля: "Хорошо, конечно мы все сделаем! Не могли бы Вы рассказать про проблему чуть подробней?"

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

Класс! А что такое динамическое хранение? А статическое?! Конечно заказчику мы такие вопросы не задаем, мы же профессионалы — ну в самом деле.

Итак, что же делать аналитику, когда он не понимает, о чем говорит клиент:

Разбираемся в вопросе самостоятельно

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

Пробуем опознать проблему опосредованно

У хорошего аналитика в загашнике есть пачка общих вопросов, которыми можно заполнить пустоту и выяснить что-то интересное независимо от контекста.
Например: "А чем именно *загадочное* статическое хранение не удовлетворяет Вашим нуждам в данный момент?" или
"Сформулируйте, пожалуйста, идеальный процесс, который Вы бы хотели внедрить".
и т.д.

А можно... посмотреть?

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

Общаемся со всеми, до кого можем дотянуться

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

Советуйтесь с коллегами

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

Но все же, что такое статическое и динамическое хранение товаров на складе?

Если бы я объясняла это моему младшему сыну, то я бы рассказала об этом так: статическое хранение - это когда у каждого вида товара (SKU) заведомо есть место, где он хранится. Всегда только на этом месте! А при динамическом хранении система при каждой операции размещения товара подбирает наиболее оптимальное место для размещения.

Вот например, при статическом хранении, приехала на склад паллета с консервами, и грузчики, даже не глядя на подсказки системы, точно знают куда везти консервы, потому что консервы всегда лежат на одном и том же месте (мы еще поговорим о слоттинге, но не сейчас).

А при динамическом хранении грузчикам придется следовать подсказкам системы, потому что никто и даже система (до последнего момента) не знает, куда нужно разместить консервы.

А все почему... Да потому что система в конкретный момент запроса на размещение должна виртуально пробежаться по всему складу и найти самую-самую правильную ячейку!

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