Что такое Event Storming?

В статье дается ответ на вопрос, что такое Event Storming, из каких строительных блоков он состоит и как эти строительные блоки увязываются в единый процесс.

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

Чтобы у команды появилось общее понимание (иногда это называют общей ментальной моделью) бизнес-процесса разрабатываемого продукта, нужно собрать вместе экспертов в предметной области (SME, Subject Matter Experts) и вооружить инструментом извлечения знаний. Причем, инструмент нужен действенный и понятный. Например, Event Storming.

here essay some people think that extreme sports does it help to have a college education but want to be a fireman dangerous sports essay nostradamus persuasive essay ce e mai bun ca viagra enter essay on temples in india does aetna pay for cialis 2 chainz viagra free download indian suppliers of viagra nuovo viagra zithromax prescribing information byu honor code essay contest 2016 viagra reviews in india agriculture paper watch https://albionfoundation.org/perpill/viagra-lustige-bilder/63/ follow link https://familytreecounseling.com/pill/kamagra-oral-jelly-nebenwirkungen/13/ essay on summer fruit mango https://assessmentcentertraining.org/exercises/essay-titles-about-money/58/ go to site cialis for 70 year olds https://independentfutures.com/overview/essay-kool-savas-black/57/ see url online 120 mg viagra with paypal order list of drugs not to take with viagra see https://albionfoundation.org/perpill/66enne-viagra/63/ what should chicago look like in an essay cuanto cuesta viagra lima peru Что такое Event Storming

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

Event Storming применяется в исследованиях клиентского опыта, проектировании новых сервисов, получении знаний о работе legacy-систем, моделировании сложных предметных областей и проектировании микросервисной или событийной архитектуры.

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

Основные концепции

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

Ниже представлены основные строительные блоки, так сказать, фундамент Event Storming:

Доменное событие (domain event) – основная концепция Event Storming. Это событие из мира экспертов в предметной области и происходящее в изучаемой предметной области. Формулируется как глагол в прошедшем времени, официальный цвет – оранжевый.

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

Временная ось (timeline) – порядок расположения событий, слева направо по мере их наступления. Параллельные потоки событий могут располагаться друг под другом.

Хаотическое исследование (chaotic exploration) – фаза, используемая в начале проведения Event Storming. Участники, каждый самостоятельно, размещают все события, которые приходят им в голову в том порядке, в котором, по их мнению, эти события происходят

Упорядочивание по временной оси (enforce the timeline) – фаза, следующая за хаотическим исследованием в рамках которой все события упорядочиваются на единой временной оси и устраняются дубликаты событий.

Основные виды Event Storming

В Event Storming принято выделять три основных уровня исследований, каждый последующий дополняет и развивает модель:

  1. Крупномасштабное исследование (Big Picture)
  2. Моделирование процесса (Process Modeling)
  3. Проектирование (Software Design)

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

Process Modeling связан с моделированием бизнес-процессов и сервисов.

На уровне Software Design мы переходим к проектированию архитектурного решения, в идеале обладающего слабой связанностью и высокой масштабируемостью.

Крупномасштабное исследование (Big Picture)

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

Основные концепции дополняются следующими:

Возможность (opportunity) – противоположность неудовлетворенности (hotspot), некоторая потенциальная выгода, что-то позитивное. Официальный цвет — зеленый. Используются после того, как события упорядочены по общей временной оси.

Действующее лицо (actor) – человек или группа людей, департамент, команда или конкретный человек, влияющие на и на которых влияет Доменное Событие.

Система (system) – ИТ-система, используемая как решение некоторой проблемы в домене. После того, как события будут упорядочены по единой временной оси, можно начать располагать системы вокруг Доменных Событий.  Официально – широкий розовый стикер.

Ценность (Value) – после приведения событий в согласованное состояние на временной оси можно добавить в модель концепт ценности. Это явно показывает,  где в домене ценность. Можно использовать маленькие зеленые и красные стикеры, чтобы отметить места, повышающие ценность и понижающие ее.

Поворотные события (Pivotal Events) – это самые важные, опорные для бизнеса события. Чаще всего это события, в которых заинтересовано наибольшее количество человек.

Параллельные потоки (swimlanes) – разделение общего потока событий потока на параллельные горизонтальные потоки с делением по некоторому принципу, например, по параллельным процессам, для разных действующих лиц.

Моделирование процесса (Process Modelling)

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

Структура Process Modelling

Некоторым элементам определения были даны ранее, ниже дадим определения недостающим:

Команда (Command) – решение, действие или намерение. Может быть инициирована действующим лицом или автоматизированным процессом. Формулируется в инфинитиве. Официальный цвет – голубой.

Правило (Policy) – это по сути реакция в формулировке «если произошло А, то делаем Б». Это может быть как ручной, так и автоматизированный процесс. Официальный цвет — сиреневый.

Модель чтения (информация, Read Model) – информация, используемая действующим лицом при принятии решения. Модель чтения определяется экспертами в предметной области. Официальный цвет — зеленый.

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

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

Проектирование (Software Design)

Event Storming помещает детали технической реализации в контекст бизнес-процесса. Получается высокоуровая схема решения, от которой легко перейти к дизайну.

Software Design Event Storming дополняется еще одним элементом: агрегатом.

Агрегат (aggregate) – это термин из DDD и означает кластер сущностей, с которым мы работаем как с единым целым и который обладает обладает инвариантом для группы объектов, составляющих его, а не единичного объекта. Официальный цвет — желтый. Не всегда имеет смысл привносить в Event Storming терминологию из DDD, – в таких случаях можно использовать формулировки «ограничение» или «бизнес-правило».

Полная структура модели Event Storming на уровне Software Design:

Модель с использованием агрегата будет выглядеть следующим образом:

Агрегат, относящиеся к нему команды, события и модель чтения вполне можно выделить в микросервис. Разумеется, это далеко не единственный способ определить границы сервиса (подробнее в выступлении Сергея Баранова «Моделирование микросервисов с помощью Event Storming»), но в качестве примера вполне подходит.

Заключение

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

Дополнительные материалы

Share

Добавить комментарий