Low-code системы позволяют создавать приложения без программирования или с минимальным его объемом – настроить такой продукт может специалист по бизнес-процессам, без помощи программиста. Такие платформы отвечают современным требованиям к гибкости и быстроте настройки – высокая конкуренция, цифровая трансформация бизнеса ставят перед решениями все новые и новые цели и задачи.
Идея low-code не нова. Для упрощения разработки программных решений уже давно разрабатывали различный инструментарий (например, в Microsoft Office): от высокоуровневых CASE средств (англ. computer-aided software engineering) и различных RAD (Rapid Application Development) инструментов, до средств разработки форм и бизнес-логики.
Одной из популярных в России low-code платформ в 1990 гг. была платформа Lotus Notes – среда, в которой можно было создавать приложения практически без программирования. На рынке появилось несколько СЭД на базе этой платформы: Company Media, «Босс-Референт» и др. На примере Lotus Notes удобно рассмотреть достоинства и недостатки систем быстрой разработки, а также сформулировать требования к современным low-code платформам.
Приложения Lotus Notes строились на базе простой модели. В ней было несколько объектов для моделирования: документы и формы для их создания и отображения, представления для отображения набора документов, элементы навигации и средства для формирования отчетов на основе данных, содержащихся в формах. А также система аутентификации, каталог пользователей, встроенная почта, календарное планирование и другие инструменты групповой работы, маршрутизации документов и контроля исполнительской дисциплины. Эти инструменты позволяли автоматизировать задачи регистрации документов, ведения журналов регистрации, фиксации резолюций и др.
Достоинства
Итак, главные преимущества low-code платформ.
Приложения можно создавать быстро
Для разработки используются визуальные конструкторы, позволяющие настраивать приложения без программирования. Это ускоряет и удешевляет их создание и поддержку, делает компанию-владельца системы менее зависимой от разработчиков – обучиться low-code инструментам и разобраться в настройках такого решения гораздо проще, чем обеспечить поддержку программного кода.
Проще вносить изменения
Работа в «фоновом режиме»: можно развивать систему все время, вносить небольшие изменения, не требующие массового обучения персонала. Это делается очень просто – в low-code платформе должны быть инструменты управления, позволяющие работать параллельно с несколькими версиями решения, что избавляет от сложностей глобального обновления.
Средства интеграции приложений в единую систему
Еще одно преимущество low-code платформы, которое редко учитывают при выборе подхода к разработке – единые средства аутентификации и разграничения доступа, маршрутизации заданий и планирования, ссылок, сквозного поиска по всем приложениям. Общая структура навигации и стиль интерфейса всех приложений.
Это сокращает время разработки, упрощает внедрение новых приложений в рамках платформы. А наличие у low-code платформы единых систем управления пользователями, разграничения доступа и организации резервного копирования сокращает стоимость их сопровождения.
Возможности масштабирования (повышения нагрузки)
Производители предусматривают развитие с точки зрения объемов данных, количества пользователей в процессе эксплуатации, географическое масштабирование. В платформах есть инструменты репликации и создания распределенных решений, клиенты для удаленного доступа к приложениям. Обычно это не закладывается в базовые средства разрабатываемых с нуля приложений.
Казалось бы, перечисленные преимущества делают однозначным выбор в пользу использования low-code платформ в сравнении с традиционной разработкой, но такой подход имеет и ряд недостатков которые, как водится, являются продолжением их достоинств.
И недостатки…
Ограничение разнообразия приложений
Low-code платформа содержит ограниченный набор конструкторов – бизнес-объектов, логики, процессов их обработки, типах пользователей и сценариях их взаимодействия с системой. Если модель разрабатываемого приложения соответствует модели, заложенной в платформу, выгоды от ее использования будут велики. Если же нет – все равно придется использовать инструменты программирования для расширения возможностей платформы.
Все равно может понадобиться программирование
Степень кастомизации бывает разная. В какой-то момент все равно может потребоваться программная разработка. Тут мы сталкиваемся с другими ограничениями использования low-code платформ – ограниченный набор языков разработки (такие как, например, Lotus Script в Lotus Notes или VBA в Microsoft Office) и ограниченность инструментов разработки (управления кодом, отладки и тестирования), по сравнению с разнообразными инструментами традиционного программирования.
Это приводит к сложностям реализации больших программных расширений, где нужна коллективная разработка, применение современных методик управления требованиями, сопровождение проекта и создание систем автоматизированного функционального и нагрузочного тестирования.
Программная кастомизация может снизить производительность
При расширении функциональности за границы заложенных в платформу моделей могут возникнуть проблемы с производительностью. Такое случается при программной кастомизации, реализации сложных объектов, их бизнес-логики. Почему? Системы low-code интерпретируют описание модели в реальном времени, а не используют готовые скомпилированные сборки, и при сложных настройках это занимает большее время, по сравнению с низкоуровневым скомпилированным кодом.
Точечная низкоуровневая оптимизация (например, оптимизация структуры базы данных или алгоритмов обработки) обычно невозможна, т.к. разработчики платформ закрывают доступ к этой части системы для защиты от некомпетентных разработчиков. А если такие варианты оптимизации все-таки есть, при обновлении решения на следующую версию платформы возникнут сложности.
Кастомизация интерфейса ограничена возможностями конструкторов
Каждая платформа предлагает настройки для кастомизации визуального интерфейса и UX-сценариев, но эти возможности ограничиваются средствами конструкторов и заложенной концепцией.
Итак, мы рассмотрели достоинства и недостатки платформ класса low-code, какими они были. Но технологии не стоят на месте, современные разработки сделали все ограничения и сложности при создании нагруженных решений минимальными. Поэтому сегодня мы говорим переходе low-code платформ на новый уровень, открывающий новые перспективы их использования в бизнесе.
Новый уровень low-code платформ и их перспективы
Рассмотрим, как эти задачи расширения возможностей low-code закрываются сейчас.
Расширение модели приложения и достижение максимальной гибкости конструкторов
Стандартный набор – только формы, представления и страницы навигации – в прошлом. Современные системы позволяют описывать жизненный цикл объектов, модель операций (например, обеспечивающих изменения состояния объекта), клиентские и серверные события и сценарии их обработки, процессы для обработки различных объектов системы и реализации серверной логики, средства связи логики представления объектов с этапами жизненного цикла, роли пользователя и метаданных объекта, а также конструкторы отчетов и проч.
Кастомизация интерфейса больше не ограничена
Арсенал инструментов постоянно расширяется, существуют разные модели приложений и наборы конструкторов. Технологии HTML5 сделали возможной кастомизацию дизайна системы с использованием привычных веб-инструментов – без ограничений и без программирования.
Больше нет ограничения языков и инструментов разработки
Для разработки расширений современные low-code платформы позволяют использовать такие языки, как C# и Java, реализуют максимальный набор API (REST, .NET и пр.), позволяют подключать скомпилированные сборки для реализации сложной бизнес-логики, выносить программный код решений в отдельный проект, применять к нему современные инструменты ведения групповой разработки, создают специализированные API для создания тестов и т. д.
Решение проблемы производительности после программной кастомизации
Облачное базирование сервисов low-code платформы решает проблему масштабирования выделением дополнительных вычислительных ресурсов по мере роста нагрузки. Все эти меры позволяют нивелировать ограничения традиционных low-code платформ, что повышает их применимость в задачах бизнеса в условиях цифровой трансформации.
Low-сode платформы в agile-проектах
Особенно ярко преимущества современных low-code платформ проявляются в проектах, которые происходят по гибким agile-методикам.
Быстрое прототипирование без ТЗ – сокращение стоимости и сроков внедрения
Прототипируйте приложение и отдельные его компоненты средствами визуального конструирования без детальной проработки ТЗ. Не нужны программисты – а в пределе даже аналитики – со специальными знаниями в области ИТ. Создавать прототипы интерфейса могут специалисты по бизнес-процессам через инструменты конструирования. Эти прототипы послужат основой будущего приложения, что сократит сроки и стоимость внедрения и управления изменениями, т.к. пользователи системы принимали активное участие в процессе ее разработки. В простейших случаях это приводит даже к self-service модели разработки.
Простые функциональные приложения без программирования
В agile-проектах простые функциональные приложения, например, каталоги объектов с простым жизненным циклом, системы управления заявками и пр. – могут создаваться вообще без подключения программистов. Делайте функциональность короткими итерациями и сразу запускайте в эксплуатацию.
Например, при создании системы управления договорами можно реализовать итерациями такую функциональность: простые формы для учета договоров – фиксация сроков и этапов выполнения договоров – отчеты по контролю исполнения – подготовка и согласование договорных документов – автоматизированное согласование с контрагентами – подключение электронной подписи – учет претензий и исков по договорам и т.д., до бесконечности. На каждом этапе (которые могут делаться очень быстро) пользователи системы уже будут получать заметный эффект.
Новые приложения могут использовать компоненты, реализованные ранее
Например, справочник контрагентов, очередь обработки заданий, отчеты о контроле исполнительской дисциплины и пр. Могут одновременно работать версии приложений, которые уже находятся в промышленной эксплуатации, в опытной эксплуатации и ранние прототипы новой функциональности. Можно вносить изменения в одни элементы модели приложения, не затрагивая другие: например, независимо изменять интерфейс, процессы, отчеты, ролевую модель доступа и т.п.
Необходимость модификации можно определять через сбор метрик и KPI – в рамках отдельных процессов, в целом по организации (подразделению). Например, метрики исполнительской дисциплины – собирая данные из приложений на базе платформы. Для любого контура автоматизации (бизнес-процесса) может быть выстроен реальный процесс непрерывного улучшения (continuous process improvement).
Этих возможностей достаточно для поддержки гибких методик внедрения ПО. Быстро и легко делать то, что делается в традиционных системах долго, дорого и сложно, с огромным количеством усилий. Low-code платформа сама приводит к использованию современных методов по agile, удешевляет внедрение приложений, сокращает его сроки и повышает удовлетворенность персонала.
Функциональность low-code платформы для создания приложений документооборота
О выпуске своих платформ low-code уже заявили все серьезные игроки рынка ПО: Oracle выпустил собственную платформу Project Visual Code, IBM и SAP вступили в альянс с производителем платформы быстрой разработки Mendix и т.д. Каждая из платформ имеет свою специфику и ориентацию на определенный класс задач. Но в этой статье мы остановимся на инструментарии быстрой разработки приложений, характерных для задач обработки документов. Именно в системах автоматизации документооборота отчетливо прослеживается последовательное развитие технологий быстрой разработки. Здесь мы рассматриваем в том числе эволюцию платформы Docsvision.
Типы приложений СЭД для реализации в low-code платформах
Современные СЭД сформировались путем соединения трех задач автоматизации документооборота: российского делопроизводства, системы управления контентом (ECM), и управления процессами (BPM). Эти задачи фокусируются на разных аспектах.
Делопроизводство – ведение реестров учетных карточек документов со сложной структурой, иерархий связей документов и поручений, ссылок и справочников, построение сложных отчетов и развитой системы управления заданиями. ECM – работа с файлами документов, их версиями, гибкое управление метаданными, системой поиска и управление жизненным циклом. BPM – моделирование и имплементация процессов обработки информации, работа с очередями обработки заданий, мониторинг хода процессов и интеграция с внешними приложениями.
Объединение трех задач в одной системе потребовало соответствующих инструментов конструирования и готовых компонентов решения, чтобы реализовывать на ней разнообразные приложения.
Сложные иерархические справочники с разнородной структурой объектов и развитой бизнес-логикой обработки информации или объекты различных типов с наборами полей, табличными и иерархическими данными, жизненным циклом обработки и т.д., с возможностью моделировать и простые списки, и сложные иерархии (проект, совещание, номенклатура и т.п.).
Работа с файлами (поддержка версий, интеграция со средствами сканирования и распознавания, потокового ввода, консолидация, поиск изменений и пр.), добавление этих функций в справочники и бизнес-объекты.
Потребовались процессы с бизнес-логикой работы с объектами – серверные активности, этапы, требующие реакции пользователей, функции интеграции с внешними приложениями. Задания с маршрутизацией обработки объектов системы, бизнес-процессов и нотификации о событиях, включающие не только объекты и файлы, но и организацию обработки, в том числе, средства делегирования, декомпозиции и замещения.
Групповые представления данных объектов и заданий – отчеты с возможностью группировки, сортировки, агрегации и цветового оформления – с возможностью включить в представления данные из объектов разного типа, отобранные по определенным критериям и проч.
Для быстрой разработки всех этих сущностей должны быть инструменты визуального проектирования. Программная кастомизация тоже возможна, когда нужна логика обработки, не заложенная в базовые возможности (которых стало гораздо больше). Эти компоненты позволяют создавать приложения, от простейших каталогов до сложных систем.
Особенности решений
У отечественных платформ СЭД есть несколько отличий. Это развитые средства работы с файлами документов, включая средства поддержки бумажного и безбумажного документооборота и поддержка основных сценариев российского делопроизводства (номенклатуры дел, контроль исполнения резолюций, формирование отчетов по КИД и пр.). Поддержка электронной подписи в соответствии с российским законодательством и средства интеграции с операторами электронного документооборота, для внешнего документооборота, поддержка формализованных электронных документов. Механизмы интеграции с наиболее распространенными в России прикладными системами и наличие готовых решений, учитывающих специфику российского потребителя.
Ограничения платформ СЭД
Решения на базе платформ СЭД имеют ряд ограничений.
Отсутствие механизма синхронных пересчетных операций
В СЭД действует принцип изоляции объектов – например, документа – его создание, модификация данных и удаление никак не повлияет на другие компоненты системы. В учетных приложениях (например, программах складского учета), заложена другая логика – при создании нового или изменении объекта происходят сложные синхронные расчетные операции, вносятся изменения в другие объекты и сущности системы.
Например, при удалении объекта из журнала учета комплектующих на складе могут производиться сложные расчетные операции, связанные с изменением других объектов системы – формирование форм представления складского запаса, различных агрегирующих регистров. В ERP-системах есть компоненты для подобного рода задач, отсутствующие в платформах СЭД.
Это ограничение может быть заменено добавлением специализированных расширений – обработчиков событий и пр., но это трудоемко, требует высокой компетенции разработчика и может влиять на производительность платформы, так как она изначально не содержит соответствующих механизмов.
Разнообразие функций – усложнение интерфейса
Большое количество функций – порождает большое количество элементов управления в интерфейсе. Этот недостаток устраняется с помощью инструментов быстрой разработки – интерфейс меняется для конкретных ролей, групп пользователей и другого контекста их использования.
Docsvision – Low-code платформа для создания приложений обработки документов
Платформа Docsvision непрерывно развивается уже 20 лет, на опыте 1500 внедрений под требования партнеров и заказчиков была доработана функциональность кастомизации и разработки приложений. Сегодня в системе есть целый набор визуальных конструкторов, позволяющих без программирования модифицировать готовые приложения и создавать новые решения.
Конструктор навигационной панели приложений – для создания единой навигационной панели – дашборда, объединяющего все пользовательские приложения в единую систему.
Конструкторы поисковых запросов и представлений – для задания форм атрибутивных поисковых запросов и формата групповых табличных представлений документов.
Конструктор состояний документов – для описания жизненного цикла обработки документа, его состояния, последовательности переходов между состояниями и доступность тех или иных операций по обработке документа в ходе жизненного цикла
Конструктор карточек – для формирования внешнего вида карточки, бизнес-логики ее обработки. Форма представления документа соответствует требованиям к выполнению тех или иных операций по его обработке для разных пользователей на разных этапах его жизненного цикла.
Конструктор ролей – уникальный конструктор, который позволяет настраивать динамические роли, формируемые по содержимому документа и другим контекстам и определяют доступный пользователю интерфейс документа, доступные операции по его исполнению и права доступа к документу.
Конструктор справочников – позволяет настраивать справочники, включая сложные иерархические, их формы заполнения и представления и бизнес логику.
Конструктор бизнес-процессов – полнофункциональный BPM-редактор.
Конструктор согласований – упрощенный конструктор процессов, ориентированный на автоматизацию согласований документов. А также другие конструкторы.
Они позволяют не только формировать структуру решений без программирования, но и включают возможности программного расширения в случае недостаточности средств конструирования.
Пример:
Конструктор согласований Docsvision
С помощью конструкторов созданы приложения – от простейших каталогов документов до сложных систем, включающих разнообразные сущности и процессы. Вот не полный список готовых приложений на базе платформы Docsvision: административное делопроизводство, архивное делопроизводство, управление нормативными документами, электронный архив конструкторской документации, управление заявками (командировки, оборудование, закупки, пропуска и др.), автоматизация кадровых процессов (найм, увольнение, аттестация) и др.
Docsvision соответствует требованиям к современной low-code системе, ее развитие планируется исходя из реалий и требований рынка. Наша отечественная разработка уже может бросить вызов полнофункциональным западным решениям класса СЭД/ECM и превзойти их.