Event Storming
1.67K subscribers
44 photos
5 files
32 links
Канал обо всем, что касается Event Storming
Download Telegram
Уже готовлю отдельную статью о заинтерессованных лицах / экспертах в предметке в сугубо прагматичном ключе, в том числе применительно к Event Storming, а пока ответ о том, какого уровня абстракции должны быть события?

Ну то есть, есть же разница между «Заключен договор о поглощении компании» и «Клиент подписал кредитный договор», если речь идет о Банке.

Уровень гранулярности определяется масштабом решаемой задачи и приглашенными на встречу заинтересованными лицами. Если перефразировать предыдущее предложение, то, каких заинтересованных лиц (экспертов в предметной области) мы пригласим зависит от масштаба решаемой задачи, а уровень абстракции/гранулярости событий будет прямо соответствовать уровню абстракции, на котором находятся приглашенные эксперты в предметной области (доменные события должны иметь смысл для эксперта в предметной области, размещающего).

Иными словами, для исследования процесса стратегического инвестирования на уровне группы компаний нужны эксперты в предметной области, для которых релевантен подобный уровень асбтракции. Затем этот высокий уровень может распастся на низлежащие процессы, для проработки которых могут быть задействованы эксперты, работающие на более низком уровне абстракции и так далее [до уровня автоматизации, например, который уже достаточно конкретный =)]
Шпаргалка по событиям 👌
Домен (предметная область) — область знаний/деятельности, для решения проблемы в которой разрабатывается приложение. Размеры домена зависят от того, как выбрать границу.

Как узнать домен?
Вовлекая специалистов, экспертов в домене. Они передают знания о том, почему принимаются те решения, которые принимаются и из каких ключевых элементов состоит домен.

Идея состоит в определении языка, делающего код понимаемым «извне».
Изучение кода новым разработчиком, таким образом, позволяет заодно изучить домен (предметную область).

Изменение в языке ведет к изменению модели и рефакторингу кода.

«If I say a word and I expect that you have the same definition, but you actually have a very different definition, we have false alignment. We think we’re talking about the same thing but we’re not.»

#DDD
👍31
Напишите мне в личку (@sergey486), если вы проводите Event Storming и у вас есть интерес развиваться и развивать эту тему.
Есть идея :)
Кому Event Storming не нужен?

Основной тезис: используем простые инструменты для решения простых проблем и сложные инструменты для решения сложных проблем 💁‍♂️

Скорее всего Event Storming как техника исследования сложной (complex) модели предметной области может быть избыточной, если:
– в продуктовой команде идеально налажена коммуникация и команда все время попадает точно в поставленную цель;
– команда никогда не тратит время на разработку никому не нужных фич, а члены команды никогда не испытывают трудностей при обсуждении домена;
– бизнес-среда – простая, а проблемы, в основном решаемые с помощью разработки, – кристально ясны и однозначно понятны;
– в организации отсутствуют границы между областями знаний (knowledge silos) и вы всегда получаете «хорошие, правильные требования»;

Для всего остального есть MasterCard EventStorming :)
Обновил дизайн https://storming.ru 😍
Скоро туда весь накопившийся контент начну перетаскивать.
🔥82👍2
Event Storming – техника исследования… домена?
В общем, я тут решил поискать понятный для широкого русского уха аналог термина для домена. Ну просто хотя бы потому что в русском языке этот термин используется активно вроде как только в IT =) Или не только? Поправьте, если ошибаюсь :)
Event Storming
Event Storming – техника исследования… домена? В общем, я тут решил поискать понятный для широкого русского уха аналог термина для домена. Ну просто хотя бы потому что в русском языке этот термин используется активно вроде как только в IT =) Или не только?…
Полез в словарь и в целом не мудрено, что термин у нас не сильно активно используется, это практически все определения из словарных. Не самые распространенные определения (даже в базах данных)

историческое значение
В странах Западной Европы в эпоху Средневековья часть феодального владения, на которой феодал вёл собственное хозяйство, используя труд зависимых крестьян и безземельных работников.



биологическое
Молекулярный агрегат

математическое
Односвязное открытое подмножество конечномерного векторного пространства.

базы данных
Множество всех допустимых атомарных значений; на практике — метаданные, абстрактно описывающие столбец таблицы БД, включая проверки и ограничения.

Да, параллельно посмотрел гиперонимы (новое для меня слово, означает «понятие в отношении к другому понятию, выражающее более общую сущность; в отношении некоторого множества объектов — понятие, отражающее надмножество к исходному.») к слову домен:
Владение, совокупность, область, адрес, таксономический ранг, агрегат, множество.
Event Storming
Полез в словарь и в целом не мудрено, что термин у нас не сильно активно используется, это практически все определения из словарных. Не самые распространенные определения (даже в базах данных) историческое значение В странах Западной Европы в эпоху Средневековья…
Пошел дальше, в доменный объект (уже в вики).

Объект, соответствующий определённому понятию предметной области.

Термин доменный объект (domain object) буквально переводится на русский язык как «объект [предметной] области»...в бизнес-моделировании может использоваться термин бизнес-объект (business object).
При этом предметная область – часть реального мира, рассматриваемая в пределах данного контекста. Под контекстом здесь может пониматься, например, область исследования или область, которая является объектом некоторой деятельности.

Не продвинулся в сторону поисков распространенного и общепринятого термина =)

Значит надо сделать шаг назад и зайти со стороны значения слова domain (oxford): An area of knowledge or activity; especially one that somebody is responsible for. (+ дополнительные определения как в русском из биологии, истории и так далее).
В общем, нам еще предстоит долгий и тернистый путь в приведении в порядок терминологии. Потому что на этом этапе в русском языке одинаковой смысловой нагрузкой стали обладать домен, предметная область и огрганиченный контекст. Буквально по-определениям.

Я очень четко представляю себе терминологию DDD в терминах английского языка, а вот с русским все всегда сложнее. Например, для complex в научной литературе не раз встречал слово «сложностный», а слово Scrum для 99,9% жителей РФ не имеет смысла, просто 5 букв. А для американцев оно часть культуры. И попробую переведи 🙂

Предлагаю в коммента накидать примеров ПОНЯТНЫХ, но не обязытельно строго-формальных определений предметной области/домена, или примеров, которые были бы понятны и юристу и бухгалтеру и электрику :)
Сергей_Баранов_DotNext_Многоликий_DDD.pdf
29 MB
Преза моего недавнего выступления на DotNext про то, что можно получить из модели предметной области представленной в нотации Event Storming
6🔥3
Когда я впервые увидел Event Storming, то подумал — вот оно. То, чего мне так не хватало. Начал изучать материалы, их тогда было не много. Все выглядело очень просто и даже как-то не верилось, что настолько просто.
Очень хотелось попробовать и первая трудность с которой столкнулся — это собрать всех в одной комнате на сколько-нибудь длительное время для моделирования.

Чтобы это сделать, людям нужны были референсы. Я и показал те референсы, что были в интернетах, а их там обычно два в сотне вариаций: резервирования номера в отеле, примитивный процесс проведения платежа или более широкий контекст — примитивный интернет магазин.

Когда вы начнете применять Event Storming в жизни, вы в один момент осознаете, что таких простых событий и команд, как в примерах в интернете, в дикой природе почти не бывает, но может сформироваться представление, что вот так оно просто. Тут главное — продержаться и не навязывать свое идеализированное представление участникам воркшопа)
Продолжается прием заявок на доклады конференции по архитектуре IT-решений ArchDays 2022!

В этом году мы возвращаемся в офлайн!
Конференция пройдет 21 октября в Москве + Online-трансляция.

Основные тематики конференции:
1. Процессы проектирования
2. Инструменты проектирования
3. Практики проектирования
4. Обучение архитектуре/развитие в архитектора
5. Soft skills
6. Кейсы

Всего в программе будет около 30 докладов и 4 очных воркшопов.

Подать заявку на выступление: https://archdays.ru/#speaker
👍1
В прод идут не знания экспертов в предметной области, а предположения разработчиков (с) Альберто Брандолини
👍11👎1😁1
Как Асхат Уразбаев сформулировал для себя понимание Event Storming (в том числе применительно к LeanDS (https://t.iss.one/leands))

Основная задача и суперспосбность —быстро, за несколько часов, создать полную картинку того, как устроен бизнес компании (предметная модель бизнеса).

Предметная модель бизнеса позволяет, как пример:

* Создать бэклог для сложного трасформационного эпика
* Создать бизнес-глоссарий (центральное понятие в Data Governance)
* Спроектировать микросервисы внутри организации
* Моделировать потоки данных в организации
* И т.д.
Для подписчиков канала скидка 20% на конференцию ArchDays по промокоду microservices_arch

https://archconf.ru/welcome_from_sergey

Уже принято 18 выступлений, в этом году наконец началась сходимость к миссии, которую я ставил перед конференцией:
«распространение имеющихся и создание новых знаний об архитектуре программных решений».

Расскажу подробнее в следующих постах.
👍2
Разбирал старые доски Miro и наткнулся на старый вопрос от 15 ноября 2020 из какого-то чата (может автор и здесь) и там же разбор этой задачи в виде event storming.

Звучал вопрос так:

Задачка: есть покупатель, рейтинг(получает за каждую покупку либо + либо -), покупки(успешные и неуспешные), уровень покупателя, опрос.
Если у покупателя кол-во успешных покупок > 200 и рейтинг более 5 то мы должны ему дать опросник.
Опросник тоже может быть done / failed(неправильные ответы). После этого он только через день сможет ответить на вопросы заново.
Внимание вопрос: где и как это делать?  
Учитываем что кол-во успешных покупок не уменьшается. Но я не могу придумать хорошего варианта
👍31