Разница между BPM движками и BPMS системами

Люди часто путают BPM движки и BPMS системы, из-за чего делают неправильные выводы и выбирают неподходящие инструменты. Чтобы сэкономить своё время на подборе системы для автоматизации BPMN-диаграмм прочитайте эту статью. Она большая, приготовьтесь.

Что общего между BPM движками и BPMS системами и почему их путают

Все хотят быстрее делать проекты, автоматизировать бизнес-процессы и тратить на это меньше денег. Маркетологи тратят кучу денег на то, чтобы результат применения движка или системы BPMS звучал так: “Закидываем бизнес-процесс в BPMN в окошко, потом эта схема сама начинает выполнятся”.

Чтобы понять что на самом деле является идеальным конечным результатом вспомним определение бизнес-процесса:

Определение бизнес-процесса, чтобы определить требования к BPMS

Определение бизнес-процесса из ABPMP CBOK

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

В контексте “управления бизнес-процессами” процессы — это сквозные набор работ, из серии “от-заявки-до-оплаты”, пересекающие всю организацию, чтобы доставить ценность потребителю.

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

Не процесс Процесс
  • Выгрузка ежеквартального отчета
  • Формирование КС-3
  • Интеграция со СМЭВ
  • Выкладка товара на полке
  • Отправка сообщения в очередь 
  • Обработка заказа в интернет-магазине
  • Согласование и оформление командировки
  • Обработка заявки на банковскую гарантию

Теперь давайте посмотрим на определение с точки зрения софта:

  1. “Набор” — значит нужно средство для формирования наборов действий. BPMN как раз подойдет.
  2. “Действий людей” — значит нужен пользовательский интерфейс, где сотрудники могут жать кнопки.
  3. “Или машин” — значит нужны API и возможность объяснить машине, что мы от нее хотим. Например написать на языке высокого уровня, типа C# или Java.
  4. “Целей” — нужно как-то понимать что цель процесса достигнута или знать почему она не может быть достигнута. Обычно это выражается с помощью сущностей и их статусов, например “Заявка на кредит” и статус “Отклонена скорингом”. Поэтому нужны средства для моделирования и хранения сущностей.
  5. “Определенных событий” — нужны API непосредственно к процессам, чтобы можно было ими пользоваться с внешнего мира.
  6. “Всю организацию” — нужно понимать, кто и какие задачи по процессу сейчас делает — т.е. возможность смоделировать оргструктуру или распределить сотрудников по группам.

Кроме того, есть чисто эксплуатационные требования к решению:

  1. Мониторинг и анализ работоспособности.
  2. Резервное копирование и восстановление.
  3. Средства обеспечения безопасности, шифрования и аудита.
  4. Масштабирование и отказоустойчивость.
  5. Инструменты для совместной работы и развития решения.
  6. Распространенность на рынке и скорость подготовки специалистов

Что обычно автоматизируют в BPMS 

Если автоматизировать налоговый учёт, то BPM(S) всегда проиграет системам типа 1С или SAP. Сфера бизнес-процессов, которые вы хотите автоматизировать, также влияет на требования к системе. Gartner предлагают 3 вида систем:

  • Systems of Record — в основном учетные системы , у всех бизнесов +- одинаковые взгляды и задачи. 1с, WMS системы, CMS системы и так далее.
  • Systems of Differentiation — это места, где реализуются уникальные преимущества бизнеса и бизнес-процессов. Могут быть BPMS, PLM или кастомная разработка. Именно этот вид систем и задач подходит под BPMS.
  • Systems of Innovation — это системы для быстрого запила прототипов, Low Code а-ля Outsystems. В основном там проверяют гипотезы, а потом всё переделывают в системах ниже.

Взгляд на типы приложений

Критерии сравнения BPM движков и BPMS систем

В итоге, чтобы понять разницу между движками и BPMS-системами, пробежимся по таким требованиям:

  1. Формирование процессов.
  2. Пользовательские интерфейсы и авторизация.
  3. Написание высокоуровневого кода на языках общего назначения.
  4. Средства для моделирования и хранения сущностей.
  5. Наличие API к решению.
  6. Моделирование оргструктуры и правил выбора сотрудников для задач.
  7. Обеспечение мониторинга и анализа работоспособности.
  8. Обеспечение безопасности, шифрования, аудита.
  9. Варианты масштабирования и обеспечения отказоустойчивости.
  10. Инструменты разработки и совместной работы.

Движков много, BPMS систем еще больше, говорить за всех я не могу. Поэтому буду рассказывать на примере движка Camunda и ELMA BPMS. Знаете о других? Пишите скорее в комментариях

1. Формирование процессов

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

Движки BPMS
Camunda Modeler

Camunda Modeler

ELMA BPMS

ELMA BPMS

Как правило, всегда есть какая-то среда для рисования диаграмм. В случае с Camunda — это Camunda Modeler, приложение, которое на выход выдает корректный XML. В случае с ELMA — это приложение ELMA Дизайнер, они используется целиком для разработки процессов в ELMA, не только диаграмм

Уровень поддержки BPMN везде разный, нужно смотреть конкретную систему. Если она поддерживает встроенные подпроцессы обработчики по сигналам непрерывающие, то скорее всего с BPMN всё хорошо 🙂 (Это экзотические символы, реализация работы которых говорит о том, что авторы серьезно относятся к стандарту)

Как выбирать: Если у вас уже много аналитиков и диаграмм в BPMN — выбирайте такое решение, которое поддерживает BPMN по-людски.

2. Пользовательские интерфейсы и авторизация

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

Современные пользовательские интерфейсы — это отдельные браузерные приложения с использованием JS, HTML, CSS. Они могут исполняться прямо в браузере как SPA (фреймфорки а-ля Vue.js, React) или генерироваться на сервере и отправляться в браузер.

 

Создание форм в BPM движках

Создание форм в BPM движках

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

Авторизации нет или она в зачаточном состоянии.

Чтобы движок стал похож на BPMS можно использовать Keycloak(авторизация) и  Form.io (формы).

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

Создание форм в ELMA BPMS

Создание форм в ELMA BPMS

Обязательные инструменты для создания пользовательских интерфейсов. 

Встроенная авторизация, готовые интеграции к Active Directory.

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

Как выбирать: Формы будут видеть внутренние сотрудники и нужно 5 полей вывести? Смотрите в BPMS. Делаете что-то очень красивое, где UI имеет важное значение для процессов? Делайте формы отдельно и прикручивайте их к движку.

3. Высокоуровневый код

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

 

Как правило движки встраиваются в ваши приложения и вы сами решаете, в какой IDE и как разрабатывать ваш код

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

Как выбирать:  У вас 15 любых библиотек для Java и четкое понимание структуры кода в вашем приложении? Ну тогда конечно движок. Вы только начинаете и вообще с кодом у вас так себе — смотрите в BPMS.

4.Моделирование и хранение данных

Под этим требованием я понимаю возможность описать предметную область и обеспечить хранение этих данных. Например сущность “Банковская гарантия” и её атрибуты “Заказчик” и “Поставщик”.

 

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

Описание таких сущностей осуществляется классами, хранение в БД можно реализовать любое — от рукотворных запросов в SQL, до использования ORM, например hibernate.

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

В BPMS практически всегда мощные визуальные инструменты для моделирования предметной области. Но все BPMS,с которыми я сталкивался, используют ORM. Эти ORM не во всех случаях могут отработать миграцию версий сущностей или генерировать хорошие SQL запросы. Все BPMS, с которыми я сталкивался, хранили и управляли данными в реляционном стиле, поэтому никаких MongoDB или Neo4j. 

Как выбирать: Четко понимаете, что вам нужна графовая база данных и работа процессов с ней будет интенсивная? Тогда вам нужен движок. Понятия не имеете о том, чем класс отличается от атрибута? Тогда BPMS.

5. Наличие API

Под этим требованием я понимаю возможность интегрировать решение в текущую инфраструктуру. Что у движков, что у BPMS-систем с этим всё хорошо, т.к. это вообще одна из ключевых фич систем такого рода. Производители BPMS-систем в интеграции обычно заходят дальше и предоставляю автогенерируемые API для созданных моделей данных, что немного ускоряет разработку. Такого же эффекта можно добиться и с движком, например для Camunda можно использовать spring-data-rest.

Как выбирать: сердцем.

6. Моделирование оргструктуры и правил выбора сотрудников для задач

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

 

Считайте что ничего нет, надо кодить всё руками.

Не знаю как в других  BPMS, но в элме можно нарисовать оргструктуру, выделить группы, сделать распределение задач “любой” или “конкретный” сотрудник. Что-то более изысканное тоже надо кодить, но до этого обычно не доходило.

7. Обеспечение мониторинга и анализа работоспособности

Под этим требованием я понимаю возможность понимать, что происходит с приложением и что происходит с конкретными процессами. 

Эти требования одинаково хорошо проработаны что в движках, что в BPMS. Единственное, что в движках у вас больше возможности кастомизации. Например, прикрутить Prometheus к приложению с Camunda займет у вас 10 минут, а в ELMA надо этим придется поработать.

8. Обеспечение безопасности, шифрования, аудита

Под таким требованием я понимаю возможность проследить кто и какие кнопки жал в системе, как менялось её состояние, возможность зашифровать часть данных в базе и так далее.

Практически ничего нет, нужно сделать всё руками. Зато можно сделать как хочется

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

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

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

Докеры, кубернетесы и всё остальное легко и непринужденно доступны вам.

Частенько особенности архитектуры (хранение данных, ORM, кодогенерация) и используемого стека (ASP.NET, IIS) могут ограничивать масштабирование приложения.

Как выбирать: Будет больше 3-5 млн. инстансов процессов в день, хотите автоскейлинг через кубернетес? Скорее всего вам стоит использовать движок. Если меньше, то можно и BPMS посмотреть.

9. Инструменты для совместной работы и развития решения

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

Классические возможности GIT и обычной разработки — хоть 5000 человек одновременно могут делать приложение. Возможностей по развитию тоже много, так как вы всё делаете руками.

Как правило, в BPMS эта задача тоже решается, но не всегда удобно. Например в ELMA BPMS версии процесса перезатираются, если 2 человека одновременно их редактируют.

10. Поиск разработчиков и аналитиков в BPMS

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

Максимальная скорость найма и адаптации — т.к. по факту это просто разработка.

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

11. Зависимость от вендора\разработчика

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

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

В итоге BPMS vs Движки

Движки

Подойдут тем, у кого много готовых диаграмм в BPMN, кто планирует делать сложный интерактивный UI с привлечением дизайнеров; имеет идеи по использованию готовых библиотек из мира программирования; возможно планирует использовать noSQL базу данных; знает какие требования по безопасности и шифрованию предъявлены и понимает как их удовлетворить; собирается использовать kubernetes, потому что ожидается большое количество траффика; в штате есть профессиональные программисты, которые готовы заняться проектом.

BPMS

Подойдут тем, кто начинает новый проект, кто не предъявляет существенных требований к UI; кто не планирует множество интеграции и у кого нет любимых библиотек на Java; Кому всё равно, как хранятся данные в базе данных; у кого нет жестких требований по безопасности и достаточно чтобы “она была”; У кого будет небольшой траффик (тысячи процессов в день); Кто планирует разрабатывать и внедрять систему в основном без привлечения разработчиков, силами аналитиков.


Расскажите в комментариях о ваших соображениях по теме и о других BPMS системах. Вам слово.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Комментарии

Вам так же понравится

 
Спасибо! Подписывайтесь на меня в соц.сетях, чтобы быстро получать новые материалы по BPMN, BPM, BPMS

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: