Event Storming – z chaosu stworzyć spójną całość
Na początek krótka lekcja historii. Zjawisko Event Stormingu opisano po raz pierwszy w 2013 roku. Za jej odkrywcę uważa się Alberta Brandoliniego, specjalistę z branży IT, który znudził się projektami realizowanymi w stary, utarty sposób. To znużenie skłoniło go do dalszej eksploracji dziedzin Domain-Driven Design, Lean i Agile Software Development, zarządzania zespołem i uczenia się. Brandolini postawił na tworzenie twórczego fermentu, który – jeśli go okiełznamy – potrafi przynieść realne korzyści.
Nowa technika pracy zespołowej została dobrze przyjęta przez pierwszą grupę docelową, czyli specjalistów zajmujących się Domain Driven Design. Metodę prędko zauważyła i doceniła branża IT. W przewodniku „Technology Radar” przygotowywanym przez agencję ThoughtWorks, Event Storming opisany został jako rekomendowana metoda zespołowego odkrywania i modelowania procesów zachodzących w skomplikowanych domenach biznesowych. Pokazuje ona bowiem jak za pomocą serii zdarzeń opisywać działanie konkretnego systemu.
Co istotne, Event Storming nie dotyczy wyłącznie rozwoju samego oprogramowania. Dziś jest to metoda stosowana w – często krańcowo różnych – dziedzinach biznesu. Jak na prawdziwą burzę przystało, wszystko dzieje się tutaj gwałtowniej i szybciej. Błyskawiczne grupowe działanie pozwala często w kilka dni, a nawet godzin, osiągnąć to, na co tradycyjne techniki modelowania potrzebują o wiele więcej czasu.
Przeczytawszy te wszystkie superlatywy, ktoś może zapytać, na czym dokładnie polega ten Event Storming – bo, że jest skuteczny, już się dowiedzieliśmy. Spieszymy z wyjaśnieniem. Do pełnego zrozumienia „burzy zdarzeń” potrzeba nam innego, szalenie ważnego pojęcia. Chodzi o „zdarzenie domenowe”, czyli wszystko, co dzieje się po uruchomieniu konkretnego oprogramowania. Mówiąc jeszcze prościej, są to czynności, które wykonuje użytkownik, by osiągnąć zamierzony cel, czyli dajmy na to poruszanie się po aplikacji, klikanie w jej funkcje, akceptacja zaproszeń, dodawanie tagów, udzielanie różnorakich zezwoleń itd.
Event Storming nie jest pracą nad oprogramowaniem prowadzoną fachowym, pełnym technikaliów językiem. Uczestników sesji interesuje wszystko to, co musi się wydarzyć, by działająca już aplikacja spełniała swoje zadanie.
Event Storming – jak to się robi?
Zgodnie z zasadą event stormingu w spotkaniu uczestniczą wszystkie osoby, które od podszewki znają komplet procesów, jakie należy przenieść lub połączyć w ramach aplikacji (ta zasada dotyczy zarówno organizatora, jak i klienta). Moderator, niczym wodzirej, utrzymuje zespół w pełnym skupieniu, dopingując ich kreatywność i podkręcając zaangażowanie w formowanie się ostatecznego dzieła. Efektem ma być pierwszy, kompletny model domeny.
Przed samą sesją należy zadbać o to, by każdy z uczestników na podorędziu miał wystarczającą (czytaj: dużą!) ilość różnokolorowych karteczek samoprzylepnych. Innym kolorem oznaczać będziemy zdarzenie, innym akcję, a jeszcze innymi użytkownika, niewiadomą i zewnętrzne systemy. Spotkanie nie obejdzie się również bez dużej tablicy lub rolki papieru do ploterów, który rozpostarty na ścianie, będzie służył za planszę do generowania zdarzeń (karteczek).
Krokiem numer jeden jest – początkowo chaotyczne – zebranie fiszek ze zdarzeniami zapisanymi przez obecnych na spotkaniu specjalistów. W ten sposób dochodzi do pierwszej analizy modelu – jest on rozkładany na części, oglądany z przodu, z tyłu, od góry i od spodu. Ważne, by upewnić się, że żaden element nie został pominięty.
Chodzi o to, by rozpocząć tworzenie zdarzeń niejako od środka, odpowiadając następnie na szereg pytań „obudowujących” powstający model. Dlaczego użytkownik skorzystał z aplikacji lub wszedł na stronę (co się musiało wydarzyć)? Jakie są jego kolejne kroki w ramach systemu? Co powinno się stać, żeby zareagował w pożądany przez klienta sposób. Karteczki zmieniają swoje położenie, tworząc coraz wyraźniejszy model.
Kolejny krok ponownie związany jest z połączeniem fachowej wiedzy i katalizowanej przez moderatora grupowej wyobraźni. Zadaniem zespołu jest wymyślanie, przewidywanie, a następnie dodawanie komend, których następstwem będą konkretne zdarzenia. Na tym jednak nie koniec. Żeby generowanie poleceń miało sens, należy uwzględnić wszelkie ich źródła, czyli użytkowników, systemy zewnętrzne, a nawet – uwaga – czas! Dochodzi do wyróżniania agregatów, czyli układania w grupy zdarzeń, komend i aktorów. Powstają zbiory zawierające wszelkie dane dotyczące konkretnej funkcjonalności, dzięki którym każdy z uczestników, a nawet osoba zupełnie postronna, będzie w stanie zrozumieć, na czym dana funkcjonalność polega. Przykładem takiego agregatu może być publikacja postu na Facebooku składająca się z szeregu zdarzeń domenowych, komend i aktorów, których współpraca prowadzi do pojawienia się danej treści w serwisie.
Każdy z wymienionych elementów, a więc zarówno agregaty, jak i wchodzące w ich skład zdarzenia, komendy, aktorzy, pomaga w powstawaniu kompletnego projektu.
Siła w grupie
Event Storming to jeden z najlepszych przykładów na to, że w pracy zespołowej tkwi prawdziwie twórcza moc. Tylko burza mózgów i wynikający z niej urodzaj pomysłów potrafi wygenerować satysfakcjonującą liczbę zdarzeń domenowych. Prawdziwą siłą Event Stormingu jest coś, co możemy nazwać „clash of titans”, czyli zderzenie kreatywnych, fachowych umysłów. Chodzi o dyskusję, która ułatwi późniejszą implementację. Co istotne, „burza zdarzeń” przeprowadzana jest z użyciem swobodnego, zrozumiałego dla wszystkich języka (ubiquitous language), co ułatwia wyobrażenie sobie końcowego efektu.
Dla klienta ogromną korzyścią jest nie tylko możliwość uczestniczenia w powstawaniu projektu, ale również uzyskanie pełnej dokumentacji projektowej w postaci User Stories oraz zdarzeń na osi czasu, dokładnej wyceny projektu oraz szalenie użytecznej wiedzy technologicznej. Ostatni z elementów to wiedza, czyli profit sam w sobie prowadzący do innych profitów.
TWORZYMY INNOWACJE ZAPROGRAMOWANE NA ROZWÓJ TWOJEGO BIZNESU