Источник изображения: Flaticon.com
Happy Path - это типовой сценарий выполнения процесса, по которому процесс идет без ошибок и быстро доходит до конца.
Мне подвернулся случай проиллюстрировать что такое BPMN схема, сформированная вокруг счастливого пути. На одном из технических собеседований меня попросили сделать тестовое задание и нарисовать BPMN. С разрешения интервьюера я публикую тестовое задание и мой вариант решения.
Тестовое задание
Нарисовать схему BPMN "Выдача наличных в банкомате":
- описать процесс максимально детально
- но только до момента ввода pin-кода карточки
- схема должна легко читаться бизнесом
- время выполнения - полчаса.
Схема BPMN
Я нарисовал с помощью Modelio примерно такую схему:
Увеличенный вариант, 1920x800 пикселей
(Схема нарисована с помощью Modelio, бесплатное десктопное приложение, Windows и Linux. Modelio умеет рисовать как UML так и BPMN. Видео-обзор Modelio на 15 минут от одного аналитика).
Мои примечания
Традиционно считается, что BPMN нужно рисовать с использованием дорожек.
Пеший по-конному
Бывают случаи, когда без дорожек действительно не обойтись. Например если мы делаем схему бизнес-процессов для проигрывания ее с рядовыми исполнителями. Тогда каждый исполнитель:
- следит за процессом на своей дорожке. Вслух по шагам озвучивает свои действия
- когда токен переходит на другую дорожку - расслабляется пока говорит коллега
- когда токен возвращается на его дорожку - снова включает свое внимание. Продолжает озвучивать свои действия.
У кавалеристов это называлось "пеши по-конному". Кавалеристы выстраивались в походный строй экскадрона, но без лошадей. Они получали команды на перестроение и выполняли их пешком:
"Эскадрон, пики к бою! Шашки вон! Рысью размашистой, но не раскидистой! Вперед, марш, марш! Руби врага!!!"
В.Суворов, "Очищение"
В современности существует дает спорт "пеши по-конному":
Когда было получено понимание очередного перестроения, дальше кавалеристов сажали на коней. Они выполняли ту же самую команду, но уже в реальном строю.
Источник фото: limited-history.ric.mil.ru
Одиночная работа со схемой
Но гораздо чаще у BMPN схемы более верхнеуровневое применение:
- Согласование с бизнесом
- Собственное понимание
- Понимание разработчиком.
Во всех трех случаях схема должна помочь одному смотрящему разобраться как устроены процессы. В расчете на просмотр схемы одним человеком, я стараюсь отрисовывать Happy path в одну горизонтальную линию, могу даже выделить счастливый путь цветом. (Если есть необходимость указывать исполнителей у задач, то это можно делать не дорожками, а текстом на задаче или цветом задачи).
Концентрация на "счастливом пути" дает следующие выгоды.
Для заказчика. Когда заказчик смотрит BPMN схему, он проходится по счастливому пути и в большинстве случаев сразу улавливает что схема делает. Это бережет его энергию согласно принципу Парето для аналитиков: "Просмотр 20% BPMN схемы должен давать 80% понимания ее процессов".
Также я заметил, что если заказчику хватило внимания на изучение счастливого пути, то согласование схемы с его стороны можно сказать уже почти завершено.
Если у заказчика есть время, то он может по очереди исследует отклонения от счастливого пути, пока не закончится схема. Даже если что-то в исключениях ему не понятно или слишком сложно, он пропускает непонятное отклонение и продолжает исследовать следующие отклонения от счастливого пути.
Иногда у заказчика заканчивается внимание и он оставляет часть вариантов нерассмотренными.
Тем не менее, если заказчик понял счастливый путь, он уже склонен спокойно поставить подпись под схемой, пусть даже если он не прошелся по всем веточкам бизнес-процесса.
Нужно иметь ввиду, что заказчик-руководитель сильно перегружен информацией. Когда у него на столе десятки документов на подпись, он не читает их целиком, лишь скользит по диагонали. Выделенный цветом Happy path как раз и есть та самая линия, по которой будет скользить взгляд заказчика. Если понятные Happy path и некоторые привлекшие внимание ответвления, то у заказчика есть чувство, что в целом в схеме все в порядке и можно ставить подпись.
Польза для аналитика. Отрисовка счастливого пути позволяет быстро сформировать "хребет" диаграммы. Позже по обе стороны хребта можно будет навесить ребра-отклонения от счастливого пути:
Польза для разработчика. Со счастливым путем перед глазами разработчик может быстро набросать работающий MVP, заменив отклонения заглушками. Заказчики ценят быстроту создания продукта, когда они уже что-то могут посмотреть/пощелкать. Позже разработчик сможет постепенно прорабатывать отклонения от Happy path.
Работа над схемой
После публикации статьи я заметил кусок, который можно было бы улучшить:
1) Возможно, стоило шлюз "Валидна ли карточка?" поменять на два последовательных шлюза:
- Есть ли доступ к серверу?
- Валидна ли карточка?
2) Стоит показать схему безопасникам. Они могут попросить слить оба варианта в один и просто извещать, что не удается проверить карточку без уточнения причин. Это может помешать злоумышленникам определить, что у банкомата нет доступа к серверу.
3) Надписи об этих двух ошибках сделаны со стороны банкомата и не очень понятны для владельцев карточек. Владельцу карточки было бы удобнее точно знать причину на чьей стороне ошибка, когда его карта не прошла валидацию - или ошибка на стороне банкомата или ошибка на стороне карты. Еще удобнее, чтобы пояснение причин ошибки дополнялось указанием действия, которое может предпринять владелец карточки для получения наличных. Например:
- надпись "Нет возможности проверить карточку (нет доступа к серверу)" дополнить: "Попробуйте вставить карточку через минуту или пройдите к другому банкомату"
- надпись "Карта невалидна" дополнить "Попробуйте использовать другую карту".
4) Возможно, вы тоже заметили какие-то ошибки в моей BPMN схеме. Сообщите пожалуйста о них через форму контактов. Спасибо!