Центр обработки данных по закупкам для крупной корпорации

Заказчик

 

Крупнейшая российская ресурсодобывающая компания.

 

Поставленная задача

 

Разработать, интегрировать и запустить единую IT-систему управления закупками для департамента по управлению корпоративными затратами.

 

Наше решение

 

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

  • обработки прайс-листов;
  • категоризации товаров;
  • расценки товаров;
  • обработки несерийных потребностей;
  • поиска сходных позиций;
  • управления взаимоотношениями с поставщиками.

 

Результат

 

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

 

Сократили время расценки с 4 дней до 30-60 секунд, а продолжительность категоризации 100 000 позиций с 3 дней до 10-30 секунд.

 

Обеспечили быструю массовую пакетную обработку и выполнение различных операций с миллионами товарных позиций. Например, экспорт 9 миллионов строк в Excel документы в течение 1 минуты.

 

Использованные технологии

 

ASP.Net Core, MS SQL, RabbitMQ, MassTransit, AngularJS, Python.

 


 

Как мы это сделали?

 

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

 

Мы проанализировали бизнес-процессы

 

Чтобы приобрести необходимые товары сотрудники департамента вручную:

 

  1. Собирали списки товаров из подразделений компании.
  2. Сортировали товары по категориям, выявляли несерийные потребности, исправляли опечатки в товарных листах и сопоставляли их содержимое с ОКПД2.
  3. Собирали прайсы поставщиков из различных источников, просматривали каталоги интернет-магазинов и обновляли статистику по ценам.
  4. Сопоставляли прайсы с товарными листами и подбирали подходящие цены на необходимые товары.
  5. Искали поставщиков для несерийных потребностей, сравнивали предложения, уточняли детали сделок.
  6. Составляли отчеты и согласовывали выбранные цены с начальством.
  7. И лишь затем производили закупку.

 

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

 

Каждый товарный лист содержал от 25 000 до 100 000 строк с товарами и больше 100 столбцов с их характеристиками. За месяц в департамент поступали сотни товарных листов.

 

Оптимизировали бизнес-процессы

 

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

  2.  

  3. Продумали лаконичную «ролевую модель» для сотрудников — оптимальным образом распределили между ними обязанности и очертили зоны ответственности.

  4. Представили заказчику новое видение бизнес-процессов и «ролевой модели» сотрудников департамента в наглядной форме, согласовали состав и план работ, приступили к их реализации.

 

Спроектировали сервис обработки прайс-листов

 

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

 

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

 

Разработали единый центр обработки закупок

 

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

 

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

 

Простым — не значит примитивным. Опытные пользователи получили возможность самостоятельно:

  • скрывать ненужные данные и менять порядок отображения столбцов таблиц;
  • в деталях настраивать интерфейс;
  • пользоваться адаптивными контекстными фильтрами;
  • присваивать товарным позициям «теги».

 

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

 

 

В результате создали интерфейс, который превращает сложные бизнес-процессы департамента по управлению корпоративными затратами в последовательность простых операций в единственном окне.

 

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

  • справочник валютных курсов, загружающий свежие данные с сайта Центробанка РФ и автоматически конвертирующий цены;
  • справочник инфляции, в котором хранятся значения ставок инфляции за каждый год;
  • справочник коэффициентов, для автоматического расчета конечной стоимости согласованных закупок;
  • библиотеку приоритетных проектов.

 

И потеснили бюрократию:

  • перенесли обсуждение цен на товары из электронной почты внутрь системы обработки данных. Дали сотрудникам возможность комментировать позиции;
  • устранили необходимость в составлении отчетов. Система автоматически ведет историю обработки позиций и собирает статистику работы департамента по управлению корпоративными затратами.

 

Интегрировали внешние сервисы, а позже заменили их

 

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

 

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

 

Сервис автоматической категоризации

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

 

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

 

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

 

Сервис автоматической расценки

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

 

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

 

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

 

Сервис использует информацию из общей базы данных, проводит независимый поиск по артикулам и наименованиям товаров, сравнивает результаты и выбирает наиболее достоверные. На обработку 100 000 позиций уходит 30-60 секунд. Сервис также принимает сообщения об ошибках и на их основе автоматически корректирует работу поискового алгоритма.

 

Разработали новые сервисы

 

Компания отказалась от услуг стороннего поставщика и поручила нам новые задачи:

 

Сервис обработки несерийных потребностей

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

 

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

 

Сервис автоматического поиска сходных позиций

Для сходных товаров раз за разом проводить процедуру расценки нерационально. Мы создали сервис автоматического поиска сходных позиций. После модификации, механизмы, использованные для авторасценки, позволяют искать совпадения во всех сохраненных системой данных, включая исторические.

 

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

 

Сервис управления взаимоотношениями с поставщиками

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

 

В нем сохраняются:

  • базовые данные о поставщиках;
  • история взаимодействия поставщиков и компании;
  • проставляемые сотрудниками атрибуты, такие как аффилированность компании;
  • бухгалтерская отчетность, кредитная история и другие финансовые данные из внешней системы проверки контрагентов «СПАРК».

 

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

 

Интеграция с внешней закупочной платформой заказчика

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

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

 

Заменили архаичные флешки и электронные письма с Excel таблицами на быстрые и безопасные современные протоколы передачи данных.

 

Справились с трудностями

 

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

 

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

 

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

 

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

 

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

 

Добились крутых результатов

 

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

 

  • оптимизировали и ускорили процедуру закупок, исключив лишние узлы и операции;
  • избавили пользователей от ограничений Excel на массовые операции с товарными позициями, и, таким образом, увеличили число одновременно обрабатываемых позиций с 1 048 576 строк за раз до нескольких миллионов;
  • организовали работу сотрудников департамента в режиме одного окна в едином интерфейсе;
  • уменьшили число сотрудников, занятых в закупках, в несколько раз;
  • упростили мониторинг и анализ процесса закупок или словами заказчика: «сделали хаос контролируемым»;
  • сократили число ошибок и количество позиций, возвращаемых на повторную расценку;
  • и, главное, выстроили доверительные отношения с заказчиком.
  •  

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

Оцените полезность статьи
Спасибо за оценку!