EventStorming
EventStorming
У цій главі ми зробимо перерву в розгляді патернів та технік проєктування, і зосередимо увагу на нескладному процесі моделювання під назвою EventStorming.
Цей процес об'єднує основні аспекти предметно-орієнтованого проєктування, розглянуті в попередніх главах, для ефективного обміну знаннями та створення єдиної мови (ubiquitous language).
Що таке EventStorming?
EventStorming — це технологічно простий спосіб зібрати разом людей для швидкого моделювання бізнес-процесу за допомогою техніки мозкового штурму.
Учасники досліджують процес як послідовність подій предметної області, представлених наліпками на часовій шкалі. Модель поступово доповнюється діючими особами, командами, зовнішніми системами та іншими елементами, поки не розкриється повна історія бізнес-процесу.
Учасники та Підготовка
Хто бере участь?
Мета EventStorming — дізнатися якнайбільше за найкоротший час.
Нам потрібні люди, які мають питання, і люди, які мають відповіді.
— Альберто Брандоліні, творець EventStorming
Запрошуйте різноманітну групу: інженерів, експертів предметної області, власників продуктів, тестувальників, UX-проєктувальників. Оптимальний розмір групи — до 10 учасників.
Що потрібно для проведення?
items:
- title: Вільний простір description: Велика стіна з рулонним папером або величезна біла дошка.
- title: Стікери та Маркери description: Безліч різнокольорових наліпок та фломастерів для кожного учасника.
- title: Зал без столів description: Просторий зал без меблів посередині, щоб учасники могли вільно рухатися.
- title: Закуски description: Оскільки сесія триває 2-4 години, легка їжа допоможе підтримувати енергію.

Процес проведення (10 етапів)
- Неструктуроване дослідження (Chaos)
Кожен учасник записує події предметної області (помаранчеві стікери) у минулому часі та прикріплює їх до стіни. На цьому етапі головне — кількість та виявлення всього, що може статися.

- Хронологічний порядок
Вибудуйте події в ланцюжок. Почніть з «успішного сценарію» (happy path), а потім додайте альтернативні гілки та помилки.

- Проблемні місця (Pain Points)
Виявіть вузькі місця, відсутні знання або процеси, що потребують автоматизації. Позначайте їх рожевими стікерами, наклеєними як ромби.

- Ключові події (Pivotal Events)
Виділіть значущі події, що вказують на зміну контексту або завершення етапу. Вони позначаються вертикальною лінією і є індикаторами меж обмежених контекстів.

- Команди та Діючі особи (Commands & Actors)
Виявіть команди (світло-блакитні стікери), що викликають події. Якщо команду виконує конкретна роль — додайте портрет користувача (маленький жовтий стікер).

- Правила (Policies)
Виявіть правила автоматизації (лілові стікери), де одна подія автоматично запускає наступну команду.

- Моделі читання (Read Models)
Визначте дані (зелені стікери), які потрібні користувачу для прийняття рішення перед виконанням команди (екрани, звіти, сповіщення).

- Зовнішні системи
Додайте рожеві стікери для систем, що не є частиною вашої області, але ініціюють команди або отримують повідомлення про події.

- Агрегати
Об'єднайте пов'язані концепції в Агрегати (великі жовті стікери). Агрегат отримує команду та породжує подію.

- Обмежені контексти
Згрупуйте агрегати, що тісно пов'язані між собою, у природні межі обмежених контекстів.

Цінність та Варіанти
Коли проводити?
- Для вироблення єдиної мови.
- Для моделювання нових бізнес-вимог.
- Для відновлення втрачених знань у застарілих системах.
- Для онбордингу нових співробітників.
Поради щодо проведення
Під час семінару тримайте «легенду» кольорів на видному місці, щоб учасники не плуталися в стікерах.

Висновок
EventStorming схожий на їзду на велосипеді: куди простіше навчитися це робити на практиці, ніж читати про це. Це легкий і невимушений спосіб синхронізувати ментальні моделі бізнес-процесів у всій команді.
Завдання
- Кого слід запрошувати на сесію EventStorming?
::steps 2. Які цілі проведення EventStorming? ::
::steps 3. Яких результатів слід очікувати від сесії? ::
Еволюція проєктних рішень
У нашому швидкоплинному світі компанії не можуть дозволити собі навіть найменшу пасивність. Щоб не відстати від конкурентів, їм доводиться постійно змінюватися, розвиватися і навіть з часом знову «винаходити себе».
DDD на практиці
Ми розглянули інструменти предметно-орієнтованого проєктування (DDD), призначені для аналізу предметних областей, обміну знаннями та прийняття стратегічних і тактичних рішень. Але як все це працює в реальному світі?