Что такое event storming?
Event Storming – метод управления в IT–разработке и бизнес–анализе. Через визуализацию и моделирование процессов команда может лучше понимать и проектировать сложные системы. То есть таким образом она систематизирует задачи и определяет зоны ответственности, что позволяет оптимизировать процесс, сократить количество возможных рисков и тем самым добиться более эффективных результатов. Кроме того, этот подход улучшает взаимодействие между членами команды и другими заинтересованными лицами, а также позволяет получать своевременную и качественную обратную связь.
Визуализация схемы может осуществляться как традиционными методами, то есть с помощью магнитной доски и стикеров, так и через электронные инструменты. В целом, это даже проще, особенно если использовать дашборды. Они позволяют управлять интерактивными элементами и иметь доступ к модели удаленно.
Структура Event Storming
Благодаря ключевым элементам метода удается грамотно управлять информацией и выстроить понятную систему:
События
Доменные события представляют собой наиболее значимые действия и изменения, влияющие на конечное состояние системы. Обычно они визуализируются в виде карточек и задают основу всей схемы.
Важным условием является то, что формулировка события должна быть написана в прошедшем времени. Это подчеркивает ее завершенность.
Например, команда занимается разработкой интернет–магазина. В этом случае доменными событиями будут такие, как: «Регистрация на сайте», «Оформление заказа», «Проведение оплаты» и т.д.
Команды
После определения ключевых событий происходит описание действий, способных инициировать эти события. Это может быть взаимодействие с другими системами через интеграцию или намерения пользователей. На схеме это также выражается в виде стикеров, которые располагают слева от событий.
Примерами таких команд могут быть такие, как: «Подтверждение заказа», «Подтверждение оплаты», «Передача данных на склад» и т.д.
Агрегаты
Так называют группу связанных между собой объектов, которые обрабатывают как единое целое. По сути, это может быть отдельно взятая функция, которая состоит из набора действий. Как правило, стикер с описанием агрегатного состояния размещают между командой и событием.
Примерами могут служить такие, как: «Окно регистрации», «Каталог», «Корзина» и т.д.
Модель чтения
Это данные для принятия решений в системе. В схеме их располагают справа от наступивших событий.
Примерами моделей чтения могут служить: «Список заказов», «История проведенных платежей», «Статус доставки» и прочее.
Ограниченный контекст
Так называются логические границы системы, в рамках которых некоторые термины и концепции приобретают специфическое значение. Визуально это представляется в виде больших прямоугольников, охватывающих группы связанных элементов.
Бизнес–правила
Условия или ограничения для системы, которые необходимо соблюдать. Как правило, этот визуальный элемент размещают рядом с соответствующими элементами.
Это основные компоненты схемы, благодаря которым происходит описание сложных взаимодействий внутри системы.
Дополнительные элементы
Также существуют и дополнительные элементы, например, такие как внешние системы или интерфейсы. Они появляются в том случае, если система очень сложная или имеет определенные требования к проекту, связанные с другими элементами внешней среды.
Формирование схемы начинается с определения начального события. После этого происходит последовательное описание всех событий, которые наступают после него.
Задача участников Event Storming – активно участвовать в обсуждении и дополнять события новыми идеями и замечаниями. Это помогает определить общее видение картины и обнаружить возможности для улучшения.
В итоге команда должна получить точное представление о том, как работает система, какие к ней существуют требования и к каким результатам это все приведет. Модель является основой для разработки и проектирования в будущем.
Как организовать Event Storming?
Event Storming условно можно разделить на два этапа: подготовительный, который подразумевает создание необходимых условий, и само мероприятие, в рамках которого происходит формирование системы проекта или программного продукта.
Подготовка подразумевает выполнение следующих шагов:
Первый – определение целей
В зависимости от поставленной цели будет смещаться фокус внимания на определенные детали. Если речь идет о разработке нового продукта или проекта, то внимание будет уделено требованиям. Если осуществляется анализ уже существующего процесса, то, скорее всего, акцент будет направлен на возможности и ограничения с целью улучшения достигнутых результатов.
Второй – выбор участников
На Event Storming должны присутствовать все заинтересованные стороны проекта или разработки, но только те участники, которые могут оказать влияние на конечный результат. Важно не количество, а качество людей. Только в этом случае получится разработать продукт или проект, в полной мере соответствующий всем требованиям.
Третий – сбор материалов
Если мероприятие будет проводиться с использованием традиционных средств, таких как доска и стикеры, то нужно заранее подготовить их в достаточном количестве. Если будет использоваться электронный инструмент, то нужно убедиться в его работоспособности.
Четвертый – создание комфортной среды
Необходимо выбрать просторное и уединенное помещение, которое вместит всех участников Event Storming. Тесное и шумное помещение может оказывать эмоциональное давление, что, в свою очередь, может привести к ошибкам. Например, будут упущены важные нюансы в требованиях проекта, потому что участники недостаточно вовлечены в процесс из–за физического дискомфорта.
Пятый – брифинг перед Event Storming
Также важно перед началом Event Storming провести инструктаж, который подразумевает объяснение целей встречи, а также обучение участников ключевым принципам подхода.
Основной этап подразумевает прохождение следующих шагов:
Мозговой штурм
Поток мыслей позволит составить список первичных требований к проекту или продукту, то есть, по сути, создать скелет. На следующих этапах на него будет наращиваться «мясо» в виде дополнений и уточнений.
Мозговой штурм может быть реализован в разных форматах. Его можно проводить в открытую и предоставить возможность каждому участнику высказаться.
Если коммуникация недостаточно открытая и доверительная, то можно организовать процесс анонимно. Каждый из участников записывает свои мысли в письменном виде на стикерах или листах бумаги. После этого ведущий мероприятия собирает обратную связь для дальнейшей дискуссии.
Дискуссия
Когда события были определены, следующей темой дискуссии становятся команды, ведущие к возникновению событий. Участники Event Storming обсуждают действия, которые инициируют события и записывают их на стикерах, чтобы после разместить рядом с определенными событиями.
Благодаря этому шагу удается выстроить причинно–следственную связь между элементами системы. Кроме того, это позволят выявить потенциальные пробелы и недостатки процессов, то есть управлять рисками.
Определение состояний
Следующим шагом является определение состояний, которые возникают после вызова команд. Также стоит обсудить прогноз результатов после исполнения каждой из них.
Этот шаг позволяет четко очертить картину того, как изменения в состояниях могут отразится на системе и общих бизнес–процессах.
Выделение акторов
Акторы – это участники, взаимодействующие с системой продукта или проекта. Понимание этих ролей дает представление о том, кто из них несете ответственность за совершенные действия и полученные результаты. Кроме того, таким образом определяются потенциальные проблемы взаимодействия.
Документирование
Когда сессия Event Storming будет завершена, нужно собрать и структурировать полученные данные для создания итоговой версии модели проекта или продукта. Это пригодится в процессе разработки, а также для анализа достигнутых результатов. Схема поможет оценить, насколько промежуточный или конечный итог соответствует требованиям и ожиданиям, описанным в начале.
Важно убедиться, что каждый из участников Event Storming правильно понимают и используют результаты встречи. Особенно это важно для стороны исполнителей, которые будет непосредственно реализовывать проект или продукт.
По мере того, как будет осуществляться работа могут возникнуть новые требования или условия. Это нужно учитывать, чтобы не терять эффективности и качества. Поэтому модель проекта или продукта придется скорректировать.
Опять же, любые изменения должны быть согласованы всеми участниками Event Storming. Требуется оценить их рентабельность прежде чем менять что–то. И даже после того, как улучшения были произведены, нужно провести повторную оценку эффективности.
Плюсы и минусы использования Event Storming
Понимание нюансов Event Storming позволит использовать инструмент более эффективно и сократить количество возможных рисков.
Преимущества Event Storming
– Визуализация упрощает понимание причинно–следственных связей между различными компонентами системы. Это, в свою очередь, позволяет своевременно обнаружить слабые стороны продукта или проекта, а также возможности для улучшения.
– Все заинтересованные лица в одинаковой степени осведомлены о том, каким будет предполагаемый результат. Все говорят на одном языке без употребления специфической лексики и вносят свои замечания. Это в любом случае совместная работа, даже несмотря на то, что этап реализации в наибольшей степени возлагается на исполнителей.
– Проект рассматривается под разными углами с учетом квалификации и опыта разных участников Event Storming. Это позволяет увидеть конечный результат и глазами заказчика, и глазами исполнителя, и глазами конечного пользователя или потребителя.
Также это способствует возникновению инновационных решений, что позволяет создать по–настоящему уникальный и конкурентоспособный продукт.
– Благодаря Event Storming все заинтересованные стороны могут выстроить открытый и доверительный диалог, что крайне важно для эффективной реализации проекта или разработки продукта. Это значит, что вся информация, будь то внедрение изменений или обратная связь, будет поступать своевременно. За счет этого также снижается количество возможных рисков и увеличивается качество продукта.
Недостатки Event Storming
– Этот процесс во многом зависит от открытости участников к диалогу. Причем к диалогу, к уважительной форме. Не должно быть снисхождения ни со стороны заказчика, ни со стороны исполнителей.
Информация о специфике проекта или продукта должна быть предоставлена в полной мере, чтобы сформировать корректные требования. Иначе это приведет к тому, что полученный результат не будет соответствовать ожиданиям, а значит, не сможет удовлетворить запросы заказчика и конечных пользователей.
– Требования к продукту должны быть реалистичными. В противном случае система будет слишком сложной, а бюджет неоправданно высоким. Поэтому необходимо оценить рентабельность всех приложений на вопрос о том, действительно ли они нужны в данном проекте и насколько тяжело их будет реализовать.
– Успех Event Storming во многом зависит от фасилитатора. Он должен грамотно руководить процессом, чтобы создать нужную атмосферу во время дискуссии. Для этого ему нужно грамотно распределить роли внутри группы, придерживаться принципов тайм–менеджмента и следить за тем, чтобы все важные моменты были задокументированы.
– Наличие и сохранение записей обязательно, это не даст упустить важных нюансов, способных повлиять на конечный результат. Кроме того, это позволит избежать некоторых разногласий в будущем.
Грамотная подготовка и управление Event Storming играют важную роль для достижения эффективных результатов. Учитывание всех вышеперечисленных нюансов позволит это сделать.
Как повысить эффективность Event Storming?
Чтобы повысить вероятность успеха Event Storming, используется несколько полезных стратегий.
– При подготовке к сессии необходимо определить человека на роль фасилитатора. Он должен понимать, как строится работа внутри компании исполнителя, а также обладать развитыми soft skills. А именно: уметь управлять коммуникацией в группе, при необходимости решать конфликты, следить за временем и иметь лидерские навыки. Если фигура фасилитатора недостаточно авторитетная и харизматичная, то это может вызвать скепсис со стороны участников Event Storming.
– Мероприятие само по себе должно иметь четкую структуру и быть ограниченным по времени. Для этого можно использовать различные техники управления дискуссией. На каждый этап: от генерации до обсуждения, должно быть выделено строго определенное количество времени. Это позволит избежать лишних разговоров, которые не имеют отношения к цели собрания.
Кроме того, такие ограничения подчеркивают занятость всех участников Event Storming. Тем самым компания показывает свое уважительное отношение ко всем заинтересованным лицам, так как дорожит их свободным временем.
– Дискуссия о проекте или продукте должна вестись на одном языке. Это касается как языка в целом, так и специфического сленга в частности. В международных группах должен использоваться язык большинства. При необходимости нужно позаботиться об участии в сессии переводчика. Это позволит преодолеть некоторые коммуникативные барьеры.
Если невозможно обсудить все аспекты проекта или разработки за одну сессию, значит ее нужно разбить на несколько этапов и каждый из них посвятить отдельно взятой теме. Пусть это займет больше времени, но для особенно сложных систем это важно. В каждой сессии необходимо коротко повторять тезисы предыдущей, чтобы не терять контекст.
Также фасилитатор должен оказывать поддержку участникам в моменте, когда они высказывают свое мнение или идеи. Это позволит увеличить уровень доверия и в большей степени вовлечь их в обсуждение. Таким образом, могут появиться нетривиальные решения, которые сделают проект или продукт более уникальным и интересным.
Ощущение безопасности, открытость, творческая атмосфера и грамотное управление позволят повысить эффективность Event Storming.