Надо ли экономить на развилках?

В издательстве Альпина Паблишер готовится к публикации русский перевод книги Брюса Сильвера «BPMN Method & Style». Брюс – признанный авторитет в мире BPMN, и выход его книги на русском должен способствовать культивации «хорошего» BPMN. Пользуясь случаем, хочу поблагодарить издательство, компанию ELMA и лично Алексея Будина, проспонсировавшего покупку авторских прав, а также переводчика Андрея Матусевича. Моя роль в этом проекте – организатора и научного редактора.

Хотя я считаю Брюса своим учителем, с некоторыми рекомендациями его Метода я не могу согласиться.

В частности, Брюс рекомендует везде, где можно, экономить на развилках:

  • использовать неявное распараллеливание -

  • делать схождение альтернативных потоков на задаче -

  • делать схождение параллельных потоков на завершающем событии -

Против этих рекомендаций у меня есть как конкретные, так и общие возражения:

  • Первая схема не является интуитивно-понятной – с большой вероятностью неискушенный читатель решит, что на ней изображен сценарий выбора, а не распараллеливания. Интуитивная (без обучения и без пояснений) понятность – важное преимущество BPMN, и жертвовать им я лично не готов.
  • Третья схема собьет с толку BPMS – в аудиторском журнале и в итоговом отчете по процессу будет зафиксировано два экземпляра конечного события вместо одного.

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

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

- человек считывает не задумываясь, «на автомате». Если убрать развилки – придется вглядываться и задумываться.

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

Я бы изобразил этот процесс так:

Схема стала больше? Да. Количество элементов увеличилось? Да. Но вся она собрана из стандартных блоков, либо следующих один за другим, либо вложенных один в другой.

Какая схема лучше? Вероятно, это дело вкуса. Как пишет Брюс, «вы можете соглашаться с моим Методом или нет – главное, чтобы вы выработали свой метод и последовательно его придерживались». С этим нельзя не согласиться!

Я бы провел здесь параллель со структурным программированием, идея которого – разбить программный код на стандартные блоки: последовательность, выбор, цикл. В свое время структурное программирование произвело революцию в разработке программного обеспечения. Сегодня про него мало кто вспоминает, но не потому, что оно стало неактуальным – ровно наоборот, оно настолько прочно вошло в практику программирования, что его перестали замечать.

В моделировании процессов, по моему мнению, также следует придерживаться структурного подхода, что, в частности, означает – не экономить на развилках.

Чтобы освоить структурное моделирование в нотации BPMN и в теории, и на практике, приходите на мой тренинг – очередной курс пройдет 7, 8 и 10 октября.

Запись опубликована в рубрике Разное. Добавьте в закладки постоянную ссылку.

Комментарии запрещены.