Event Storming – innowacja w projektach IT

Pierwszym skojarzeniem, jakie przywodzi na myśl określenie „Event Storming”, jest znana metoda grupowego generowania pomysłów, czyli „brainstorming”. Choć można odnaleźć kilka cech wspólnych dla obu terminów (spotkanie w grupie, kreatywny charakter aktywności), to różnica tkwi w ich przeznaczeniu i sposobie wykorzystania.

Event Storming to przede wszystkim narzędzie umożliwiające uzyskanie wiedzy i zrozumienie na czym polega istota danego biznesu. Jest szczególnie pomocna w sytuacji, gdy w grę wchodzi potrzeba zrozumienia domeny nowatorskiej lub nietypowej, która nie pasuje do standardowych archetypów biznesowych.

 

Jak Event Storming sprawdza się w praktyce?

Odpowiadając na to pytanie, posłużmy się praktycznym przykładem usprawnienia pracy „spółdzielni kawowej” zrzeszającej miłośników kawy pracujących w jednym z oddziałów naszej firmy. Spółdzielnia swoją domeną obejmuje zakupy, monitoring i obsługę zużycia surowców (kawa, mleko, cukier), rejestrację osób, zamówienia i subskrypcje na przygotowanie kawy (zlecenia stałe o określonych parametrach z uwzględnieniem nieobecności subskrybentów), konserwacje i naprawy sprzętu, alokacje kosztów i rozliczenia indywidualne członków spółdzielni (wpłaty i wypłaty). Koledzy, którzy poprosili nas o pomoc (Klient), wyrazili pragnienie pozbycia się manualnej, papierkowej roboty oraz porzucenia żmudnych wyliczeń w arkuszach Excela, na rzecz automatyzującego te prace dedykowanego oprogramowania. Zamiast tradycyjnej analizy biznesowej (np. przeprowadzania rozciągniętych w czasie wywiadów z różnymi przedstawicielami biznesu czy obserwacji ich codziennej pracy), zaproponowaliśmy organizację warsztatów Event Storming.

Do udziału w sesji zaprosiliśmy osoby ze strony Klienta (tzw. eksperci domenowi), analityków, programistów oraz moderatorów. Zachętę do wspólnej pracy stworzyła otwarta, pozbawiona stołów i krzeseł przestrzeń, widok bloczków różnokolorowych karteczek oraz przyklejona na ścianie długa rolka papieru.

Zaczęliśmy od zapoznania się z ogólną charakterystyką działalności spółdzielni, następnie poprosiliśmy naszych ekspertów o zapisanie na pomarańczowych kartkach wszelkich istotnych faktów z dziedziny, którą się zajmują oraz chronologiczne ich uszeregowania. Zgodnie z dobrymi praktykami Event Storming zdarzenia zapisywaliśmy w czasie przeszłym dokonanym – np. „Subskrypcja dodana”, „Paczka wysłana”. Taka forma usprawnia proces wydobywania z umysłu istotnych konkretnych zdarzeń dotyczących procesu biznesowego,

Zgromadzenie w jednym miejscu i czasie kluczowych ekspertów i analityków stworzyło szansę na uspójnienie znaczeń używanych pojęć i przebiegu procesu biznesowego, tak, aby wszyscy rozumieli je tak samo. Pracy ekspertów towarzyszyły liczne pytania ze strony programistów i analityków, w których efekcie wszyscy uczestnicy jednakowo interpretowali język i pojęcia używane przez Klienta. Dzięki takiemu podejściu już na początku projektowania wprowadziliśmy tzw. język wszechobecny. Moderatorzy spotkania czuwali nad tym, aby przekazywana wiedza była spójna i kompletna, pomagając ekspertom dziedzinowym skierować uwagę na kolejność zdarzeń, realne przykłady i okoliczności zdarzeń. W wyniku pierwszej sesji warsztatów powstał zbiór chronologicznie uporządkowanych zdarzeń domeny.

Event Storming

Po przerwie poprosiliśmy naszych ekspertów domenowych o dopasowanie do widniejącego na ścianie zbioru zdarzeń odpowiednich akcji i osób. W ten sposób ujawnił się zbiór potencjalnych aktorów (tzn. osób wykonujących różne czynności w tym procesie) oraz aktywności (systemowych komend). Kolejne karteczki, którymi eksperci uzupełnili model, dotyczyły informacji potrzebnych do wykonania akcji oraz istotnych reguł biznesowych, od których zależy przebieg zdarzeń biznesowych.

Event Storming altkom

Ostatni etap pracy polegał na pogrupowaniu zdarzeń, skupieniu ich wokół grup danych (agregatów), których przetwarzanie nie może być rozdzielone w czasie (granice transakcji). W ten sposób otrzymaliśmy usystematyzowane informacje o domenie i systemie stanowiące dobrą i zrozumiałą przez wszystkich podstawę do stworzenia projektu modelu zgodnie z Domain Driven Design. W kolejnym kroku efekty pracy zostały uszczegółowione przy użyciu techniki User Story Mapping i User Journey, dając w rezultacie materiał do zaprojektowania nowoczesnego rozwiązania architektonicznego.

Event Storming timelapse

 

Jak warsztaty postrzegają sami uczestnicy?

„Podoba mi się zwłaszcza dynamika i aktywizacja uczestników” – podsumował spotkanie Paweł – ekspert domenowy ze strony Klienta. „Myślę, że taka forma, pozwala efektywnie przekazać wiedzę, a dzięki ożywionej dyskusji pomaga dłużej utrzymać wysoki poziom koncentracji” – dodał.

 

Obecny na warsztatach architekt Kamil zauważył, że: „Dobrze zrobiony Event Storming ma sporą szansę zakończyć się na poziomie pozwalającym rozpocząć tworzenie prototypu. Dzięki temu jeszcze bez dokładnego udokumentowania wszystkich reguł można już pracować nad modelem domeny i implementacją. W efekcie szybciej przedstawić klientowi działający przykład i uzyskać od niego wartościowy feedback. W ten sposób lepiej realizujemy założenia Agile”.

 

Równie entuzjastycznie o metodzie wypowiedział się Robert – nasz developer:  „Event Storming pozwala szybko rozpoznać i zrozumieć domenę. Naturalnie wspiera DDD, pozwala zdekomponować domenę, prowadząc proces analizy/modelowania od wizji, przez kolejne etapy szczegółowości aż do poziomu wzorców taktycznych, które znajdują odwzorowanie w kodzie. Wspiera projektowanie architektur: “event-driven”, “loosely-coupled”, w szczególności architektury mikrousługowej. Wspiera także tworzenie architektury ewolucyjnej. Posługuje się językiem zrozumiałym dla wszystkich a dzięki wykorzystaniu nieformalnej notacji, pozwala włączyć do dyskusji dowolną osobę i uwzględnić wszystko w modelu”.

 

Zdaniem Artura, doświadczonego analityka systemowego, „forma Event Storming ułatwia, a wręcz wymusza ustalenie wspólnego rozumienia pojęć i operacji oraz ich znaczenia przez biznes, analityków i developerów; szybsze odkrycie niespójności, duplikatów, a także braków wiedzy/kwestii otwartych. Operowanie na karteczkach dobrze wizualizuje operacje na wymaganiach (parkowanie, usuwanie, powiązania). Forma wymusza duże zaangażowanie wszystkich uczestników, łatwo też wykryć jego braki”.

 

Podsumowanie

Event Storming jest lekką, niewymagającą dużych nakładów środków i czasu metodą, dzięki której możemy zbudować spójny, powszechnie rozumiany i akceptowany obraz dziedziny biznesowej. Takie podejście minimalizuje późniejsze problemy wynikające z niezrozumienia się osób biorących udział w projekcie informatycznym i pozwala zaoszczędzić wiele zasobów i czasu na późniejszych etapach dostarczania rozwiązania. Jednoznacznie pozytywne doświadczenia i pochlebne opinie na temat Event Storming płynące od licznego grona profesjonalistów branży IT są najlepszą rekomendacją do użycia tej metody w procesie opracowywania oprogramowania.

 

Autor: Hubert Jakubiec, Analityk w Altkom Software & Consulting