В статье дается ответ на вопрос, что такое 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/ bacon essay on studies part of an essay paragraph crossword the rise of viagra mika love https://alexthornton.com/featured/how-many-viagras-in-1-day/16/ essay typer reviews source site coverletter resume Что такое 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 принято выделять три основных уровня исследований, каждый последующий дополняет и развивает модель:
- Крупномасштабное исследование (Big Picture)
- Моделирование процесса (Process Modeling)
- Проектирование (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. В следующих статьях более подробно остановимся на отдельных аспектах и посмотрим на примеры сессий и какие бизнес-задачи достигнуты в рамках этих сессий.