Система понятий — фундамент доменной модели. Но есть неудобный вопрос: как её добыть? Знания о домене размазаны по головам: продажи знают своё, склад — своё, бухгалтерия — своё, и никто не видит процесс целиком. Классические интервью по одному — это испорченный телефон в замедленной съёмке. Event Storming — техника, которая решает задачу иначе: собрать всех в одной комнате и за несколько часов выложить процесс на стену. Целиком.
Идея: события как общий язык
Почему техника строится вокруг событий домена («заказ оформлен», «платёж получен», «товар отгружен»)? Потому что событие — единственная форма знания, о которой легко говорить всем:
- бизнес мыслит именно так — «сначала приходит заявка, потом мы её проверяем…»;
- событие — это факт в прошедшем времени: о нём не спорят «как правильно», а вспоминают «как бывает»;
- у событий есть естественная ось — время: их можно разложить в хронологию, и пробелы станут видны буквально глазами.
Никаких UML и нотаций, которые бизнес не читает. Оранжевый стикер + прошедшее время + стена. Порог входа — нулевой, поэтому эксперты участвуют, а не присутствуют.
Как проходит штурм: от хаоса к структуре
1. Выброс событий. Все участники (эксперты домена + инженеры, обычно 6–10 человек) молча пишут на оранжевых стикерах события своего куска процесса и клеят на длинную бумажную ленту на стене. На этом этапе важно не обсуждать — важно выгрузить. Хаос нормален.
2. Хронология. Вместе выстраиваем события по времени: что за чем. Тут же вскрывается главное: дубли под разными именами («заявка принята» и «заказ создан» — это одно событие или два?), дыры («а что происходит между оплатой и отгрузкой?») и развилки.
3. Горячие точки. Там, где участники заспорили или никто не знает ответа, клеится розовый/красный стикер — hot spot. Это золото воркшопа: каждый такой стикер — либо скрытый конфликт понятий, либо дыра в процессе, о которой узнали бы в проде.
4. Команды и акторы. К событиям добавляются причины: команда (синий стикер — «оформить заказ») и кто её отдаёт (актор) или что её запускает (политика-реакция: «всякий раз, когда платёж получен, — зарезервировать товар»). Вырисовывается цепочка: команда → событие → политика → команда → …
5. Агрегаты и контексты. Теперь видно, вокруг чего группируются команды и события, — эти сгустки и есть кандидаты в агрегаты (жёлтые стикеры): «Заказ» принимает команды «оформить», «отменить» и порождает соответствующие события. А там, где на ленте меняется язык и набор понятий («заказ» превращается в «отправление», «клиент» — в «получателя»), проступает граница контекста — та самая, стратегическая, только найденная не в кабинете, а на реальном процессе.
Результат нескольких часов: хронология событий, карта горячих точек, кандидаты в агрегаты и границы контекстов. Это и есть добытая онтология — сырьё, из которого дальше делаются доменная модель и спека.
Практика: что нужно и где ломается
Что нужно: длинная стена с бумагой (или бесконечная доска в Miro для распределённых команд), много стикеров трёх-четырёх цветов, ведущий-фасилитатор и — критично — живые эксперты домена, а не их представители. Формат по глубине выбирают под задачу: big picture (весь бизнес-процесс крупно, 2–4 часа) или детальный уровень процесса/дизайна для выбранного куска.
Где ломается:
- Ведущий диктует. Если инженер сам пишет стикеры «как он понял», получается интервью с декорациями. Пишут эксперты.
- Спор о «правильном» вместо «как бывает». События — факты; если спор затянулся, это hot spot, клеим маркер и идём дальше, а не тонем.
- Сразу в решение. «Тут нужен Kafka» на втором часу штурма — преждевременно: сейчас добываем понятия, технологии потом.
- Один и готово. Штурм — не церемония на старте проекта, а инструмент: процесс изменился — стену пересобирают.
Коротко
- Event Storming — воркшоп, где эксперты и инженеры выкладывают домен на стену стикерами-событиями в хронологии; события выбраны потому, что о фактах в прошедшем времени легко говорить всем.
- Ход: выброс событий → хронология → горячие точки (споры и дыры — главная ценность) → команды, акторы, политики → кандидаты в агрегаты и границы контекстов (там, где меняется язык).
- Выход штурма — добытая система понятий: сырьё для доменной модели, спеки и тактических паттернов.
- Правила: пишут эксперты, а не ведущий; споры маркируются, а не решаются на месте; технологии — потом; стена живёт вместе с процессом.