Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Привет, Хабр! Меня зовут Вадим Райский, и я работаю руководителем IT-проектов для департамента управления магазинами Fix Price. Каждый год мы открываем около 700-750 торговых точек в России и за рубежом – примерно по две каждый день. Алгоритмы и большое количество данных позволяют с высокой степенью вероятности прогнозировать прибыльность каждой открытой локации.
Сегодня я расскажу о том, как мы перешли от «аналогового» способа сбора данных о локациях к цифровому и выстроили интеллектуальную систему поддержки новых торговых точек.
Как все начиналось
Давайте перенесемся в 2015 год и представим, что перед нами стоит задача открыть новый магазин. У менеджера по недвижимости заранее начинала болеть голова. Ему предстояло собрать и систематизировать данные о нужных локациях, накопленные за много лет в различных форматах – от Excel до рабочей почты. На поиски нужной информации могли уходить часы.
Объем обрабатываемых данных легко понять, если представить себе, сколько информации собирается для принятия решения об открытии новой точки. Агрегируется информация по всем городам России, улица за улицей, ведется учет каждой вакантной коммерческой площади, собирается информация о ее технических характеристиках, потенциале трафика и других параметрах. На эти базовые данные затем нанизывается информация о ставках аренды и результатах переговоров с отдельным арендодателем.
Информации в конце концов стало так много, что мы поняли: пора что-то менять. И внедрили группу сервисов, которая значительно упростила работу сотрудникам, принимающим участие в открытии магазина:
1) Мобильное приложение, позволяющее быстро завести объект и добавить необходимую информацию. Решили сделать его на Kotlin, для мобильных приложений он сейчас подходит лучше всего. Для чего оно было сделано: точек открываем много, в том числе в отдаленных регионах, где с интернетом возникают проблемы. Теперь при отсутствии интернета менеджеры спокойно работают со всей информацией (фотографии, заметки) по объектам в мобильном приложении.
2) Система для согласования объектов, расчета выручки и прогнозов (оферты), решения в которой принимает топ-менеджмент. При выборе объекта учитывается множество факторов (расположение, стоимость аренды, состояние объекта и т. д.), вся эта информация была сведена в единую программу и подается наглядно, чтобы решение по каждому объекту можно было принять быстро.
3) Система для составления и согласования смет. Было важно оптимизировать контроль за сметами, чтобы они не выходили за расчетные пределы.
4) Система расчета план-графиков открытий. Там отмечается, например, когда какой этап подготовки к открытию начат, причем вся информация для удобства подается в виде диаграмм.
5) Две системы, снижающие бумажную волокиту после открытия: аудит по сметам и расчет премий сотрудникам. Последнюю можно назвать мотивационной системой. Она позволяет учитывать вклад каждого сотрудника при реализации проекта (например, когда открывается новый объект) и быстро рассчитывать премии, чем раньше занималась бухгалтерия практически в ручном режиме.
Добавлю, что все описанные сервисы спроектированы и разработаны внутри компании.
Что это нам дало
Внедрение группы IT-сервисов полностью автоматизировало процесс систематизации данных по всем объектам недвижимости. Давайте разберем по пунктам:
1. Мы внедрили автоматические расчеты показателей экономической эффективности. Вместо 4 часов такой расчет для каждой локации стал занимать 10 секунд. Теперь вся информация постоянно обновляется, максимально облегчая работу пользователя.
2. Мы создали единую базу объектов недвижимости со всей историей. Объем этих данных – более 40 млн строк, они распределены между базами данных нескольких сервисов. Тем самым мы можем в любое время оперативно предоставить любые данные, которые необходимы бизнесу для анализа и принятия решения по рассматриваемому объекту.
3. Мы написали код для визуализации данных по всем локациям на карте. Это в разы облегчило работу с информацией.
4. Мы исключили аудит смет вручную и на бумажных носителях, что позволило сделать нормативы по проведению строительно-монтажных работ максимально прозрачными и контролировать процессы со стороны внутренних аудиторов.
Воспряли духом даже бухгалтеры: у них исчезла головная боль при ежемесячных и ежеквартальных расчетах премий сотрудникам. А у топ-менеджмента выросла уверенность: если объект пришел на рассмотрение, то любые ошибки из-за человеческого фактора исключены. Появились четкие показатели, на основании которых можно принимать взвешенное решение об открытии магазина.
Наши технологии
Наш подход к выбору технологического стека был простым.
Прежде всего, мы обращали внимание на рынок и популярность решений. Как компания-дискаунтер мы заточены под поиск эффективных, но недорогих технологий, которые точно решают бизнес-задачи. Мы не плодим у себя языки программирования и целенаправленно ограничиваемся минимальным пакетом программных продуктов.
Второе, что было важно – перспективность решений, их регулярное обновление и улучшение с точки зрения используемых подходов к разработке. Эти решения должны помогать нам поддерживать реализованные задачи в актуальном состоянии и при необходимости дополнять их новым функционалом без существенных проблем и нужды переделывать все «с нуля».
В архитектуре мы придерживаемся микросервисного (в широком смысле этого слова) подхода. Изначально существовало два больших монолита c легаси-кодом различной степени свежести. К настоящему моменту они претерпели существенные изменения – часть кода была вынесена в отдельные сервисы, часть отрефакторена.
В качестве оркестратора мы используем Kubernetes. В связке с GitLab настроены процессы CI/CD, значительно упростившие наш процесс разработки.
На бэкенде мы выбрали PHP. Мы не рассматривали на нем реализацию средств автоматического анализа, искусственного интеллекта или обработки больших данных. Для этого есть более подходящие языки. Но с точки зрения бизнес-процессов и типовых задач PHP полностью закрыл все наши потребности.
Если говорить о фронтенде, то мы выбрали фреймворк Vue.js. Шаблоны в нем хорошо читаются, что позволило легко добавить Vue.js в легаси проект с jQuery и постепенно переписывать код. При этом он проще других топовых фреймворков – React и Angular.
Для хранения и обработки данных была выбрана база данных PostgreSQL. Она имеет полный набор средств для реализации Enterprise-решений в 2022 году, активно обновляется и поддерживается овнерами – из реляционных вне конкуренции.
Изменения структуры
Как уже сказал выше, мы начали процесс дробления наших монолитов (один из них ЕРОН: Единый реестр объектов недвижимости) на отдельные сервисы. Эти процессы продолжаются до сих пор. К настоящему моменту мы выделили отдельные библиотеки для интеграции с SAP и для интеграций по API с другими сервисами. Также внедрили отдельный сервис для гибко настраиваемых рассылок через различные пути доставок (почта, мессенджеры).
Что дальше?
Мы постоянно пересматриваем процессы, поскольку заинтересованы в еще более оперативном открытии магазинов без потери качества.
Месяц назад мы запустили мобильное приложение, позволяющее еще быстрее открывать новые локации. С его помощью менеджер может выполнять свою работу без задержек даже в офлайне. Ведь иногда магазины открываются далеко от региональных центров. Или размещаются на цокольном этаже, где может отсутствовать связь. Пока мы ввели приложение для одной роли (менеджер недвижимости), в дальнейшем хотим добавить и остальные.
Так как наша цель – не в продаже продукта, это избавляет от ряда ресурсозатратных мероприятий: изучения ЦА и рынка, проведения A/B тестирования. Нам скорее интересна возможность погрузиться в конкретную область, понять бизнес-процессы. Поэтому больше времени и сил мы уделяем самой логике систем. В нашей компании любят интересные задачи, над которыми можно поломать голову.
Об этих задачах мои коллеги или я расскажем в следующих текстах. А пока с удовольствием отвечу на ваши вопросы в комментариях.