Для большинства людей факторинг – услуга непонятная. По факту — это финансирование поставок компаний, работающих с отсрочкой платежа.


Предположим, вы небольшой производитель круп. Вы отгрузили товар в торговую сеть, но деньги получите в среднем через 60 дней после отгрузки. Многим компаниям ждать столько не под силу: ту же зарплату сотрудникам нужно платить уже сейчас. Одно из решений — факторинг. После заключения договора факторинга вы можете получить финансирование любой поставки. Достаточно после отгрузки товара отправить фактору подтверждающие документы (счета-фактуры, накладные, акты). Фактор верифицирует поставку у вашего покупателя и перечисляет вам деньги за товар, за вычетом собственной комиссии.


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


Как старая система убивала удобство


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




Неудобный интерфейс
Модуль личного кабинета поставлялся вместе с процессингом, скорее, как дополнительный, а не основной. Интерфейс с множеством ExtJS-таблиц был хорош для админки, но для обычных пользователей он выглядел избыточным нагромождением. Дизайн выбивался из линейки продуктов Сбербанка (Сбербанк Онлайн, Сбербанк Бизнес Онлайн), никакой интеграции с ними также не было.


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


Сложность в доработке
Процессинг представлял собой энтерпрайзного монстра, фронтенд которого написан на ExtJS версии 10-летней давности. За время своего существования продукт оброс новым кодом. Делать новую версию удобного клиентского портала на его основе было нецелесообразно. Эффективность таких доработок нулевая, да и разработчиков не хотелось демотивировать. Так созрело решение сделать факторинговый портал для клиентов — Сбербанк Факторинг Онлайн.




Мы поставили перед собой цели:


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

Быстрее, гибче, смелее


На старте нашей разработки были:


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

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


Этап. Решили работать короткими недельными спринтами, чтобы максимально оперативно корректировать скоуп работ.


Спринт. Цель спринта и состав задач старались не менять. В ежедневные стендапы помимо классической составляющей (что сделал, что планируешь, какие проблемы возникли) была отдельная рубрика новостей, на которой кратко оглашали и обсуждали обновления за предыдущий день — изменения в требованиях, проблемы и обновления по смежным системам. Изменений было много, и часто от команды поступали толковые замечания и предложения. Если стендап выходил за пределы 20 минут — выносили обсуждения отдельно. Slack со скриншарингом + доска в JIRA работают отлично.


Первая версия


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




Главный функционал для поставщика – отправка реестров поставок на финансирование. Появилась возможность отправлять документы как создавая их вручную, так и на основании EXCEL и XML разных форматов.




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




Вторая версия


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


Интеграция. От синхрона к асинхрону


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


image

После создания документа на портале и нажатия «Отправить», XML содержимое документа уходит в процессинг по SOAP, мы получаем ok ответ и показываем зеленое success окошко. Это подходило на первом этапе — XML были небольшие и без бинарных вложений. Затем сущностей для обмена стало больше, мы решили передавать объекты с бинарными вложениями и гарантию отправки (пользователь не должен повторно нажимать «Отправить» в случае проблем в передаче данных).


Стало понятно, что с прямым синхронным взаимодействием дело не взлетит — пользователи будут колдовать над кнопкой отправки, чтобы протолкнуть тяжелые объекты с кучей вложений. Решением выбрали асинхронное взаимодействие через очередь сообщений RabbitMQ.


image

Третья версия


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




Для реализации таблиц мы взяли Kendo UI и по максимуму использовали его возможности работы с таблицами.




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




В полноэкранном режиме доступна динамическая загрузка результатов.


Если пользователь не хочет получать данные постранично, он может получить отчет в формате Excel. Отчет может состоять из нескольких сот тысяч элементов и его формирование занимает время, поэтому мы разработали функцию «заказ отчетов». Клиент заказывает отчет и получает ссылку на скачивание Excel после того, как отчет был готов.




Результаты


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

  1. Очень гибкая разработка малыми недельными спринтами. Гибкость во всем, кроме недельного скоупа работ.
  2. Упор на автоматизированное тестирование, е2е-тестирование, плотное вовлечение тестировщиков во взаимодействие с бизнесом.
  3. Слаженная команда разработки высокого уровня.
  4. Быстрое и прозрачное взаимодействие между заказчиком и разработчиком

Что дальше


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