Есть ли код в No-code?

d50756c196302d8aac170441b2879815.jpg

Привет! Я — Строгонова Мария, с 2006 года внедряю заказные и типовые решения на базе хранилища «ПрограмБанк.БизнесАнализ». В компании ПрограмБанк я прошла путь от аналитика до руководителя производственного центра.

Основная специализация нашей команды — это автоматизация бизнес-процессов сбора данных и подготовки управленческой и финансовой отчетности. Хранилище БизнесАнализ с самого своего зарождения было low-code платформой для разработчиков, на которой мы и сами автоматизировали задачи своих клиентов. Поэтому естестественным продолжением стала его новая версия с no-code инструментами для решения тех же самых задач.

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

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

  • могут быть настроены многомерные отчеты

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

  • можно быстро сделать копию приложения и внести изменения или проверить гипотезу
    может быть настроено разделение доступа к данным и алгоритмам

Единственная задача, с решением которой рано или поздно понадобится помощь ИТ-спецов заказчика — это настройка ETL.

Когда я рассказываю про наш проект, часто встречаю скепсис в стиле: «Ну да, видели мы такой no-code! Это только для типовых сайтов, мобильных приложений или проверки гипотез работает! Настроим минимум, а потом подсядем на ваши классические доработки».
Хорошо понимаю такие опасения, такие же аргументы используем и мы, например, при выборе импортозамещенного Service Desk.

Но мы всё таки хотим показать, что теперь и в сфере финансов и отчетности можно настроить и поддерживать no-code приложение без программирования.

Для этого я подготовила цикл статей с конкретными примерами.

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

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

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

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

Структура приложения в объектах self-service будет такой:

0a17b14f8b57d58964f06b4ccb5bca6f.png

Здесь будут:

  1. 3 справочника,

  2. витрина для сбора первичных данных по кредитному портфелю,

  3. 5 многомерных форм.

Переходим к непосредственной настройке приложения Бюджет:

1. Создаем приложение

d026187505899b0c8f32d19f3725474e.jpg

Новое приложение сразу занимает свое место в общем дереве приложений

2. Настраиваем типовые справочники

Так называемые типовые справочники дальше будут использоваться в качестве финансовых аналитик-измерений в многомерной модели

В нашем примере стандартная история для финансовой отчетности — аналитики-справочники валюты, центры финансовой ответственности (типа подразделений), продукты.

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

Пользователь указывает название справочника и настраивает список атрибутов

  • названия,

  • их типы — строка, число, логическое или другой справочник,

  • обязательное ли,

  • признак уникальности (ключ).

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

5cee6c8a1b53a28d49256e449a0d6a35.jpg

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

3. Настраиваем специализированные справочники

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

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

Так же это типы значений — они понадобятся для того, чтобы настроить разные способы расчета и выводить отдельно в форме План и Факт.

4. Настраиваем базовую структуру форм многомерных показателей

Анализируем структуру и варианты заполнения показателей многомерных форм в excel-файле от методолога. Ниже пример того, как может выглядеть такое описание.

e5201a7f5f64737929c6777e061b9a37.jpg

В описании видим, что у формы есть

  • аналитики-параметры: Банковский продукт, Центр финансовой ответственности, Валюта,

  • по столбцам разложены месяцы внутри финансового года,

  • по строкам — список показателей,

  • ячейки на пересечении — числовые данные. Жёлтые ячейки — ручной ввод, остальные — расчет по формуле.

Для одной и той же формы в методологии есть три варианта — плановые значения, фактические и сравнение План-Факт.

Какие self-service возможности есть, чтобы пользователь смог настроить такие формы

  • настройка несбалансированной иерархии показателей, которые будут заголовками строк таблицы, с указанием типа данных,

  • выбор аналитик (справочников) в качестве параметров (фильтров) формы,

  • выбор аналитик (справочников) в качестве измерений по строкам или столбцам,

  • добавление показателям типов значений.

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

19cf28f24da9cb78edcec15de07a6c1d.jpg

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

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

2bc7ab3e666d5636328e0cb456f98bbf.jpg

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

5. Настраиваем витрину сбора данных

Настройка витрины данных похожа на настройку типового справочника

  • названия показателей,

  • их типы — строка, число, логическое или другой,

  • обязательное ли,

  • признак уникальности (ключ),

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

Сразу после сохранения пользователю становятся доступны два взаимодополняемых способа заполнения витрины

Готовый excel-шаблон для загрузки можно скачать из редактора витрины.

На этом этапе сразу добавляем в витрину небольшое количество данных для начальной отладки формул. Позднее при помощи excel-шаблона можно будет загружать рабочие объемы первичных данных.

721ee576771cb411d0d171c5c38f290f.jpg

В дальнейшем ИТ-специалисты банка смогут автоматизировать загрузку данных следующим путем:

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

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

6. Настраиваем формулы

Теперь самая трудоемкая часть процесса настройки многомерных форм — формулы.

В формулах пользователь может использовать обращение к

  • показателям витрин

  • другим показателям внутри этой же формы

  • показателям других форм того же самого приложения

  • показателям форм других приложений

  • показателям с другим контекстом — из других периодов и другими аналитиками

  • агрегированным показателям

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

Какие функции, к примеру, могут использоваться в формулах

  • Одноименные аналоги Excel

    • СУММЕСЛИ

    • ВПР

    • ОСПЛТ

    • ПРПЛТ

  • СУММНИЖЕ — сумма всех дочерних по иерархии показателей

  • СРВЗВЕШЕСЛИ — аналог СУММЕСЛИ только значения не суммируются, а определяется средневзвешенное значение

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

Примеры формул:

"Выдано кредитов, тыс.руб" - СуммЕсли("Кредитный портфель#Сумма повторных выдач по траншам ВКЛ, руб")/1000
здесь данные витрины для суммирования автоматически фильтруются по продукту из контекста ячейки с формулой

"Возврат кредитов, тыс.руб"* "стадия обесценения 1, тыс.руб "[[Предыдущий "Год"]]/"Портфель на конец периода, тыс.руб"[[Предыдущий "Год"]]
расчет на основании значений предыдущего года

"Портфель аннуитетных кредитов#Начисление процентов, тыс.руб"[["Банковские продукты" = 'Ипотека ФЛ']]
берем из другой формы значение по конкретному продукту, при этом другой контекст или тип значения не указываются, значит определяются автоматически как совпадающие с ячейкой вызова

СрВзвешЕсли( "Кредитный портфель#Срок кредита (транша), дней", "Кредитный портфель#Сумма выдач, руб", "Кредитный портфель#Сумма выдач, ед.">0")

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

9c3fd599fe49ddf5f0a31905d762bb9d.jpg

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

Бонус с витринами для внешнего доступа к собранным данным:
Пользователи с достаточными правами могут подключаться напрямую к хранилищу через sql и использовать собранные и рассчитанные данные прямо сразу в своих любимых внешних инструментах типа BI или Power Query. Для этого у каждой витрины и многомерной формы есть автогенерируемые вьюшки.

7. Настраиваем бизнес-процесс бюджетирования

Итак, источники, структуры и формулы для форм настроены — теперь дело за бизнес-процессом.

Тут тоже довольно простая визуальная настройка.
Нужно определить

  • названия шагов и этапов

  • их последовательность и зависимости

  • список ответственных пользователей

  • форму, которую необходимо заполнить на каждом шаге

Всё.

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

В соответствии с этим уже конкретным регламентом каждый пользователь будет автоматически уведомлен о приближающихся и истекающих событиях, а также каждый раз при входе на портал self-service приложений будет видеть список своих актуальных задач

626f593066694d1125c39b1772afcfd9.jpg

8. Итоговая структура self-service приложения

В итоге наш финансовый аналитик получил следующий функционал

  • бизнес-процесс планирования

  • витрина по кредитному портфелю с 4 дополняющими друг друга вариантами сбора данных

  • многомерные формы в разрезе валют, центров финансовой ответственности и продуктов, а также их агрегаты:

    • Матрица винтажного анализа по кредитам

    • Портфель аннуитентных кредитов

    • Модель формирования резервов

    • Отчет о финансовых результатах

    • Баланс

  • самостоятельное дальнейшее управление изменениями внутри банка

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

1750bfaffd37e513ff283362fb579f4c.jpg52837658153c9aa3b2111304209e09a4.jpg

Что технически делалось для настройки:

  • ввод названий

  • включений опции через флажки

  • выбор значений из списка вариантов с обычными не специализированными названиями

  • упорядочивание списков мышкой

  • написание формул, аналогичных формулам в Excel

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

У обученного аналитика настройка данного функционала на нашей self-service платформе заняла до 8 ми часов чистого времени. Допустим с перерывами на подумать или консультации это могло быть ∓3 рабочих дня.

Что мы знаем о том, на что бы он мог потратить такое же количество времени?
Да, только на написание ТЗ на автоматизацию того же самого.

В сравнении с классической автоматизацией при использовании self-service платформы банк получает

  • экономию времени сотрудников, так как они смогут внедрять приложения в те сроки, в которые обычно пишется ТЗ

  • снижение операционных затрат, так как количество приложений на одной платформе не ограничено

  • нет необходимости в сотрудниках с какой-то специальной квалификацией для работы с платформой и дальнейшей поддержки приложений

По нашему мнению честный No-Code выглядит именно так.

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

Если вы вы заинтересовались платформой БизнесАнализ — предлагаем вам посмотреть видео записи вебинара «Как создать и настроить многомерную бюджетную модель коммерческого банка без MS Excel и программирования» или посетить наш новый вебинар в сентябре»24.

На вебинарах мы не только рассказываем более подробно про возможности наших self-service инструментов, но и буквально показываем все то, о чем я выше написала -, а именно настраиваем приложения с нуля.

Зарегистрировать на вебинар

Habrahabr.ru прочитано 1529 раз