Event Storming: когда архитектурная сессия начинается не с диаграмм, а с вопроса «что происходит в системе»

public

Автор: Listen IT · Listen IT


Видео Listen IT, 15 минут. Event Storming — воркшоп-техника, разработанная Альберто Брандолини. Сессия начинается не с рисования схем, а с вопроса: какие события происходят в системе? И именно этот порядок меняет всё.

Типичная архитектурная сессия выглядит так: техлид рисует диаграмму, остальные кивают или спорят о деталях реализации. Знание о домене остаётся в головах у бизнес-экспертов и не попадает в код. Event Storming переворачивает процесс: на стену клеятся оранжевые стикеры с доменными событиями («заказ размещён», «платёж подтверждён», «склад уведомлён»), и сразу становится видно, где у команды нет общего языка — кто-то называет одно и то же по-разному, кто-то предполагает событие, которого на самом деле не существует. Пробелы в знании домена вскрываются за часы, а не за месяцы.

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

Из этого можно взять в работу: следующий раз, когда команда пишет задачу на новую фичу, попробуйте перед техническим дизайном провести 30-минутный мини-Event Storming: попросите каждого участника написать 3–5 событий, которые должны произойти в системе. Несоответствия вскроются моментально.


Формат Event Storming: большая поверхность (бумажный рулон или виртуальная доска), цветные стикеры с фиксированной семантикой. Оранжевые — доменные события (что произошло, в прошедшем времени). Синие — команды (что инициирует событие). Жёлтые — агрегаты (вокруг чего группируются команды и события). Розовые — внешние системы. Красные — болевые точки и вопросы.

Процесс проходит несколько фаз. Хаотическое исследование: все участники одновременно клеят оранжевые стикеры — каждое событие, которое они знают или предполагают. Никакой очерёдности, никаких иерархий. Цель — быстро выгрузить всё, что есть в головах. Фаза порядка: стикеры сортируются по временной оси слева направо. Здесь возникают первые конфликты — два человека написали одно и то же разными словами, или событие A должно идти до B, а оказалось наоборот.

Связь с DDD: Event Storming — это практический инструмент для поиска Bounded Context. Когда линия событий выстроена, хорошо видны границы, внутри которых язык однороден — это и есть кандидаты на контексты. Именно поэтому Event Storming часто используется как точка входа в Domain-Driven Design, а не сам по себе.

Разновидности: Big Picture Event Storming (весь бизнес-процесс, от нескольких часов до дня) и Process Modelling (конкретный процесс, детально, с командами и политиками). Первый — для исследования незнакомой области, второй — для проектирования конкретного решения.