Что такое BPMN и из каких элементов состоит?
Всем привет! Продолжаем наш, видимо, бессмертный цикл для начинающих бизнес-аналитиков, будем разбираться сегодня с BPMN:
- что это такое
- какие основные элементы, что означают
Масштабный пример в виде описания конкретного бизнес-процесса давайте оставим на другую статью, потому что информации много, а я одна. Поехали!
Что такое BPMN и для чего нужна?
Business Process Model and Notation (BPMN) — это система условных обозначений (нотация) для моделирования и графического описания бизнес-процессов.
Почему мы разделяем моделирование и описание? Потому что моделирование про то, как мы именно создаем бизнес-процесс, как и в каком порядке выстраиваем его элементы, отображаем с помощью условных обозначений действия и события, а описание про результат моделирования, то есть про готовый процесс, который представлен в виде графической схемы, понятен и бизнесу, и техническим специалистам.
Исторически BPMN был разработан Business Process Management Initiative (BPMI), а с 2005 года его поддержку и развитие осуществляет Object Management Group (OMG). По ссылке можно скачать стандарт текущей версии 2.0.2 для самостоятельного изучения (на англ.), по объему документа (больше 500 страниц) вы можете справедливо предположить, что я не берусь (и не возьмусь) учить вас работать с этой нотацией, я знакомлю вас с ней, говорю об основных задачах и сделаю пример бизнес-процесса в ней, поделюсь опытом своей работы с этой нотацией.
BPMN, как и любой другой инструмент, требует времени и сил для его освоения, при желании сертификации и, если у вас эти время, силы и желание есть, то буду рада стать отправной точкой в знакомстве с этим инструментом (нет так нет, я, знаете ли, предпочитаю блок-схемы).
Для чего используется BPMN? Так как BPMN технически относится к бизнес-процесс менеджменту (Business process management, англ.), управлению бизнес-процессами. Лучше всего определение бизнес-процесс менеджмента раскрывается, на мой взгляд, в книге М. Веске (Business Process Management: Concepts, Languages, Architectures, автор: Mathias Weske, 2-е изд., 2012 г., перевод с англ. от меня):
✍Управление бизнес-процессами — концепции, методы и техники, поддерживающие проектирование, администрирование, настройку, исполнение и анализ бизнес-процессов.
Итак, мы знаем, что компания стремится достичь своей бизнес-цели с помощью бизнес-процессов, как наборов последовательных действий, и, получается, компании нужно организовать как-то управление этими действиями, то есть у нас есть процессный подход к управлению компанией, но ведь мы на практике довольно часто видим, как управление действиями по достижению бизнес-цели завязано на функциях (продажи продают, финансы считают финансы, топ-менеджеры делают стратегию и т.д.), то есть и функциональный подход.
Вот BPMN нужна для того чтобы в процессном подходе описывать и моделировать бизнес-процессы компании, чтобы они были управляемыми и … исполняемыми. То есть с помощью движков рабочих процессов (Workflow Engines) и систем управления бизнес-процессами (BPMS) смоделированные процессы могут быть автоматизированы: сервис берет BPMN-модель и шаг за шагом выполняет ее, назначая задачи людям, вызывая внешние сервисы, ожидая событий и принимая решения на основе условий четко по заданному порядку выполнения действий.
(Если вам интересно, то я могу написать подробнее про функциональный и процессный подходы к управлению отдельно, пишите в комментариях).
Какие основные элементы BPMN?
Основой BPMN служат блок-схемы и графические обозначения. В отличие от традиционных блок-схем, BPMN предоставляет гораздо более богатую информацию, потому что больше элементов, символов, ситуаций, а по сравнению с диаграммами активности Unified Modeling Language (UML), он более доступен для понимания (но если вам сложно, не переживайте, сначала всем сложно, я вообще плакала когда впервые смотрела на элементы и схемы).
Диаграммы BPMN состоят из основных категорий элементов:
1 Дорожки (Swimlanes) — если мы представим себе большой бассейн, поделенный на дорожки, по которым плавают пловцы, то примерно обозначим себе логику: внутри одного бассейна дорожки могут быть пересечены пловцами, но пловцы не прыгают, как рыбки, из бассейна в бассейн. Примерно так и в описании бизнес-процессов:
- Пул (Pool) — это бассейн с дорожками, чаще это обозначает отдельную организацию или крупную функцию, такую как Маркетинг, ИТ или Клиент. Пул следует понимать как графический контейнер, который разделяет набор действий от других пулов.
- Дорожка (Lane) — это дорожка в нашем бассейне, то есть подраздел внутри Пула, простирающийся по всей его длине. Дорожки используются для организации и категоризации действий, часто по ролям, отделам или приложениям / сервисам.
Теперь давайте обозначим еще важные понятия для нотации, которые связаны с Пулами и Дорожками.
Представим, что я аналитик компании ООО Зеленоглазое Такси, и я могу описывать, по сути, все процессы внутри компании, и тогда мой Пул будет назваться ООО Зеленоглазое Такси, а внутри будут Дорожки: Гараж, Кадры, Бухгалтерия и т. д. Но! Я же нахожусь не в вакууме, у меня есть, например, Клиент, и вот Клиент для меня будет соседним отдельным Пулом. Я буду знать, что от Клиента приходят заказы, но внутренних процессов Клиента я не знаю, и тогда весь этот неизвестный мне внешний Пул будет для меня Черным Ящиком (Black Box Pool), то есть мне он не известен и не контролируется мной.
В BPMN еще очень важно, чем мы заняты Оркестровкой (Orchestration) или Хореографией (Choreography). Оркестровка относится к процессам, управляемым и контролируемым внутри одной организации или участника, то есть когда я внутри ООО Зеленоглазое Такси моделирую и контролирую, а Хореография, напротив, относится к процессам, включающим взаимодействия и обмен сообщениями между несколькими независимыми участниками. Это если бы я нарисовала несколько Пулов (для своего такси, для Клиента 1, 2, 3 и т.д., и стала бы описывать, какие сообщения и когда проходят между разными Пулами, но без детализации внутренней логики каждого участника.
2 Объекты Потока (Flow Objects) — это то, что определяет порядок и ход бизнес-процесса, поток у нас это именно то, как «протекает» бизнес-процесс:
- События (Events), происшествия, которые запускают процесс, изменяют его ход или завершают его, визуально это всегда круги. Эти круги визуально могут содержать внутренние символы, указывающие на их специфический тип, например, сообщение (конверт), таймер (часы), ошибка (молния), сигнал (треугольник), отмена (X), компенсация (стрелка назад), множественное (пентагон), параллельное множественное (пентагон с плюсом), эскалация (стрелка компаса), ссылка (стрелка вправо), условие (заметка) или завершение (сплошной круг).
На скриншоте из гайда по нотации ивенты поделены на Ловящие (Catching), то есть те, что ловят момент срабатывания тригера (получение сообщения, срабатывание таймера) и Бросающие (Throwing), то есть те, что сами создают триггер, отправляют сообщение или выставляют таймер. А! И Непрерывающие (Non-Interrupting), они позволяют текущей задаче завершиться, а затем продолжают поток, при этом параллельно может быть запущен новый поток.
- Действия (Activities), в виде прямоугольников со скругленными углами и обозначают работу или задачу, выполняемую человеком или системой. Базовое действие — это Задача (Task), внутри могут быть допсимволы для понимания, это пользовательская (символ человечка), сервисная (шестеренка), скриптовая (свиток) или ручная задача (рука). Еще есть подпроцессы (в нижней части задачи значок +, нажать на него и будет подпроцесс показан целиком), транзакции (прямоугольник с двойной рамкой) и вызываемое действие.
- Шлюзы (Gateways), с помощью шлюза мы открываем / закрываем / разветвляем / соединяем ход бизнес-процесса (поток его исполнения, ага), обозначение — ромб. Есть Исключающий шлюз (Exclusive Gateway / XOR), когда только один путь выбираем, например, отвечая да / нет, Включающий шлюз (Inclusive Gateway / OR), когда можно один или несколько путей выбрать, если условия везде истинны, Параллельный шлюз (Parallel Gateway / AND), когда надо параллельно выполнить несколько задач без каких-либо условий, Шлюз, основанный на событиях (Event-based Gateway), тут путь выбирается по первому наступившему событию, на которое завязан шлюз, и Комплексный шлюз (Complex Gateway), он для сложных условий, можете поискать примеры.
3 Соединяющие Объекты (Connecting Objects) — те элементы, которые соединяют объекты потока, формируя путь процесса и показывая взаимосвязи между ними.
- Поток операций (Sequence Flow) — сплошная линия со стрелкой, отображающая порядок выполнения бизнес-действий, разрешены только в рамках одного Пула, не могут входить в Начальное Событие или выходить из Конечного События.
- Поток сообщений (Message Flow) — пунктирная линия с кругом и стрелкой. Он показывает сообщения между различными Пулами, но не могут соединять объекты внутри одного Пула.
- Ассоциация (Association) — пунктирная линия без стрелки, которая соединяет артефакты или текст с событием, действием или шлюзом. Они используются для показа входов и выходов действий путем связывания данных, текста и других артефактов.
4 Артефакты (Artifacts) — дополнительные элементы, которые предоставляют контекст или информацию, улучшают наше с вами понимание процесса и облегчают чтение, но не влияют на выполнение процесса.
- Текстовая Аннотация (Text Annotation) — контекст или комментарии к определенной части диаграммы, как пояснение. Пунктирная линия и открытая скобка с текстом.
- Группа (Group) — нужна для логической группировки действий (например, мы какую-то часть действия очерчиваем в группу, чтобы обозначить какую-то фазу процесса), но без изменения потока диаграммы, изображается прямоугольником со скругленными углами и пунктирной границей.
- Объекты Данных (Data Objects) — нужны, чтобы понимать, какие данные необходимы для выполнения действия или какие данные будут в результате получены, соединяются с действиями через ассоциации и обозначаются значком документа. Есть Входные данные (Data Input), которые нужны для начала действия, Выходные данные (Data Output), то есть результаты, и Хранилища данных (Data Stores), что-то, где информация хранится в процессе.
Давайте посмотрим на эти элементы и дальше на примере с такси:
- для Пула Клиент у меня может быть Конечное Событие: Доехал до места назначения, это означает завершение процесса Клиента с его точки зрения. Это его личное, внутреннее конечное состояние, которое сигнализирует, что его цель (доехать до места) достигнута. Но для Пула ООО Зеленоглазое Такси это еще не конец, Пул получит Поток сообщений об этом событии и внутри этого Пула будут Действия и События завершающие уже процесс именно такси (тут пример Хореографии, когда я за разные Пулы распределяю события, будто ставлю им танец)
- для Пула ООО Зеленоглазое Такси и Дорожки Гараж я как Действие (Задачу) могу обозначить: Проверить уровень топлива, Задача будет пользовательская (для Водителя), тут пример Оркестрации (когда я сосредоточена на своем Пуле)
- для Пула ООО Зеленоглазое Такси я могла бы использовать Исключающий шлюз (Exclusive Gateway / XOR) после получения Заказа от Клиента: от этого шлюза пойдут две стрелки: одна стрелка с условием «Есть свободная машина?» ведет к действию Назначить водителя, а другая стрелка с условием «Нет свободной машины?» ведет к действию Сообщить клиенту о задержке
- рядом с действием Принять заказ от Клиента в Пуле ООО Зеленоглазое Такси можно разместить Объект Данных с деталями заказа (дата, время, адрес начальной и конечной точек маршрута)
Это если очень кратенько, чисто чтобы вы примерно понимали применимость элементов нотации.
Заключение
Итак, мы посмотрели основные элементы и связанные с ними правила, теперь чтобы уложить это все в голове, нам нужно взять хорошо понятный нам и знакомый процесс, и разложить его на действия, события, данные, все вот это вот, что мы видели, еще мы себя немножко побьем по рукам, потому что нам обязательно захочется управлять потоком процесса с помощью, например, данных (а так нельзя).
Вы пока читайте и запоминайте вот это вот все, а я пойду писать вам разбор на примере и чертить.
Надеюсь на комплименты, вопросы и комментарии, я старалась дать максимально простое объяснение для элементов нотации и правил.