Омельченко Михаил | Django School

Омельченко Михаил | Django School 

Внешний технический директор по ИИ.

23subscribers

108posts

Event Storming

Программирование и веб-разработка — области, требующие чёткого понимания бизнес-процессов, которые стоят за каждым функциональным элементом системы. В сфере, где сложность проектов постоянно растёт, остро стоит задача поиска подходов для управления этой сложностью. Один из таких подходов — Event Storming, тесно связанный с парадигмой DDD.
Event Storming — это мощный инструмент моделирования, который позволяет заинтересованным сторонам проекта осуществлять коллективную работу с целью более полного понимания и оптимизации бизнес-процессов. Эта техника представляет собой рабочие сессии, в ходе которых участники используют цветные стикеры для представления ключевых событий (events), команд (commands), агрегатов (aggregates) и других элементов бизнес-домена.
Почему Event Storming важен?
Коллаборация между разработчиками и экспертами по бизнесу.Event Storming способствует формированию единого языка и общего понимания бизнес-процессов между различными стейкхолдерами.
Выявление скрытых связей и допущений.Работая в группе, участники могут обнаружить неочевидные зависимости и предположения, которые могут оказать ключевое влияние на конечный продукт.
Ускорение процесса разработки.Четкое понимание доменной модели помогает создавать качественный код быстрее, так как уменьшается количество правок и переписываний.
Разбиение сложного домена на управляемые части.С помощью Event Storming разрабатывается модель, состоящая из отдельных модулей (bounded contexts), что делает систему гибче и легче поддается изменениям.
Визуализация бизнес-процессов:
События отображают бизнес-процессы, позволяя всем участникам видеть их взаимосвязь.
Моделируем потоки данных, команды и реакции системы на события.
Создание документа архитектуры:
Процесс Event Storming приводит к созданию документа архитектуры, который включает в себя ключевые компоненты системы и их взаимосвязь.
Как провести Event Storming и какие преимущества он предоставляет:
Участники: Вовлекаем в мероприятие представителей из различных областей - бизнес-аналитиков, разработчиков, тестировщиков и т.д.
Длительность: Сессии могут занимать от нескольких часов до нескольких дней в зависимости от сложности проекта.
Инструменты:
- Можно использовать Miro.
- Разноцветные маркеры для выделения различных типов событий.
- Значки или наклейки для представления актеров в системе.
Этапы проведения:
1. Запуск: В начале определяем фокус мероприятия, например, бизнес-процесс, который требуется изучить.
2. События и команды: Участники записывают события и команды, связанные с выбранным бизнес-процессом.
3. Разбор: Все вместе обсуждаем и уточняем, как события влияют на систему и какие команды генерируются в ответ.
4. Паттерны: Идентифицируем паттерны в системе, выделяем агрегаты (логически связанные группы сущностей), строим контекстные карты.
Преимущества Event Storming:
Совместное понимание: Позволяет всем участникам совместно понимать бизнес-процессы и взаимодействие компонентов системы.
Итеративность: Позволяет быстро экспериментировать с разными идеями и корректировать модель.
Видимость: Создает визуальное представление системы, что улучшает восприятие ее структуры и взаимосвязей.
Обучение: Помогает новым членам команды быстро войти в проект и понять его контекст.
Результаты:
Архитектурные решения: В результате Event Storming можно выработать архитектурные решения и лучшие практики для реализации системы.
Документация: Модели, созданные в процессе, могут служить в качестве основы для документации, которая будет использоваться разработчиками.
Понимание бизнеса: Помогает команде лучше понять бизнес-контекст и логику процессов.
Использование Event Storming — это необходимость при разработке сложных систем с целью минимизации ошибок на этапе проектирования и повышения эффективности командной работы над проектом.
Event Storming - это не только методология, но и инструмент для формирования общего видения проекта, улучшения коммуникации в команде и создания эффективной архитектуры системы.
Go up