EventStorming - Big Picture

3 lat temu

Przeprowadzając zmianę w organizacji, przykładowo wdrażając nowy system lub aplikacje, trzeba mieć na uwadze, iż ta zmiana będzie wpływać na inne obszary w środowisku, w którym funkcjonuje, oraz iż w trakcie jej implementacji rzeczy również będą się zmieniać. To znaczy, iż zabierając się za implementacje czegoś nowego, warto zadbać o zbudowanie jak najszerszego i jak najbardziej czytelnego obrazka otaczającej nas rzeczywistości (więcej o tym pisałem tutaj).

Jak to zrobić? Najlepiej przez zebranie w jednym pomieszczeniu wszystkich kluczowych ludzi związanych z danym obszarem. jeżeli myślimy o odpowiedniej formie warsztatu, aby pozyskać potrzebne nam informacje, z całą pewnością Big Picture EventStorming jest jednym z lepszych wyborów. Jest to obszerny warsztat, który z założenia powinien zaangażować wszystkie najważniejsze osoby do odkrycia szerokiego obrazu domeny biznesowej.

Co nam może dać taki warsztat?

  • Zobrazujemy model naszej domeny uwzględniając połączenie różnych obszarów odpowiedzialności oraz różnych perspektyw i aktorów
  • Odkryjemy najbardziej niepokojące problemy i przeszkody
  • Namierzymy okazje

Struktura warsztatu

Cała siła EventStormingu leży w tym, iż nie narzuca on uczestnikom skomplikowanej struktury czy notacji modelowania od samego początku. Ona oczywiście istnieje, ale rośnie wraz z dodawaniem kolejnych szczegółów przez uczestników i ich pewnością siebie. Próg wejścia jest więc minimalny. Zasadniczo jest to próg z którym powinno sobie poradzić dziecko z pierwszych klas podstawówki.

Rozpoczęcie warsztatu

Po krótkim przedstawieniu celu warsztatu warto od razu przejść do rzeczy. Sugeruję nie poświęcać czasu w tłumaczenie czym jest EventStorming, można w ogóle nie wymawiać tej nazwy. Nie trzeba również poświęcać czasu w agendę warsztatu czy opis kolejnych faz. Moim zdaniem to tylko strata cennego czasu, w którym uczestnicy są najbardziej skupieni i ciekawi tego co się wydarzy. Nie marnujmy więc go, tylko od razu przechodźmy do konkretów. jeżeli w gronie uczestników większość stanowią osoby pierwszy raz biorące udział w takiej sesji, można zacząć od rozgrzewki, czyli krótkiego ćwiczenia gdzie poprosimy uczestników o zamodelowanie np. dobrze znanej bajki.

Chaotyczna eksploracja

Główną fazę warsztatu zaczynamy od wyjaśnienia, iż od tej pory pomarańczowych karteczek będziemy używać do nazywania Zdarzeń Domenowych (ang. Domain Event), oraz iż będziemy je umieszczać na osi czasu obrazując przepływ zdarzeń w domenie, którą chcemy odkryć.

Zdarzenie jest bardzo proste w swojej definicji:

  • Jest to pomarańczowa karteczka. Oczywiście zasadniczo kolor nie ma znaczenia - możemy przyjąć własną kolorystykę. Wydaje mi się jednak, iż lepiej stosować ogólnie przyjęte kolory.
  • Zawiera wyrażenie z czasownikiem w czasie przeszłym, np. produkt dodano do koszyka lub email został wysłany
  • Jest to znaczące zdarzenie dla domeny biznesowej, którą chcemy odkryć

Zdarzenie jest głównym elementem budulcowym całego procesu biznesowego, który chcemy odtworzyć.

Zdarza się, iż na początku nikt z uczestników nie jest chętny żeby podejść do tablicy i dodać pierwsze zdarzenie. Sporo tutaj zależy od tego, czy mamy do czynienia z uczestnikami gdzie wszyscy pierwszy raz biorą udział w takiej sesji (wtedy warto zastosować przykład wprowadzający z bajką), czy też poszczególne osoby już wiedzą o co chodzi - wtedy z reguły nie ma problemu. Warto pokreślić rolę facylitatora, który powinien co najwyżej dodać pierwszą karteczkę i się wycofać. Facylitator w żadnym wypadku nie powinien wyręczać uczestników np. słuchając i dodając karteczki za nich (przyznaję się, iż zdarzało mi się popełnić ten błąd, a wtedy jesteśmy już utopieni)

Pamiętajmy również, iż na tym etapie zależy nam na zebraniu jak największej liczby różnorodnych zdarzeń. Wszelka praca uczestników w mniejszych czy większych grupach raczej nie jest wskazana i powinniśmy je delikatnie rozbijać, wymuszając pracę indywidualną.

Warto również wyłapywać zbyt ogólnie nazwane zdarzenia. jeżeli czujemy, iż pod danym hasłem może kryć się więcej, sugerujmy rozbicie na mniejsze elementy.

Końcowy efekt tej fazy to dziesiątki, jeżeli nie setki, karteczek poukładanych tylko z grubsza w odpowiedniej kolejności, a często w osobnych grupach. Część z nich prawdopodobnie w ogóle nie pasuje do miejsca, gdzie się aktualnie znajduje na osi czasu, duża część jest zduplikowana, a jeszcze inne nie są poprawnie zapisane.

Narzucenie linii czasu

Po fazie chaotycznej eksploracji przychodzi czas na złączenie i uporządkowanie zdarzeń. Alberto Brandolini, twórca techniki, sugeruje kilka różnych metod pozwalających osiągnąć nam zamierzony efekt. Poniżej kilka najpopularniejszych (z zachowaniem nazw oryginalnych):

  • Pivotal Events: Metoda polega na wyszukaniu najbardziej znaczących zdarzeń, co do których zgadzamy się, iż są najważniejsze w naszym procesie i oznaczeniu ich w dowolny sposób. Takich zdarzeń powinno być co najwyżej kilka. Skupiając się na nich jesteśmy w stanie sprawniej przyporządkować zdarzenia z nimi związane.
  • Swimlanes: To proste podzielenie naszej przestrzeni roboczej na poziome 'pasy', gdzie każdy pas może reprezentować osobny proces związany z danym aktorem, systemem czy departamentem w naszej firmie. W warsztacie 'na żywo' spore znaczenie ma zapas pionowej przestrzeni, którą dysponujemy na ścianie, a która może nas ograniczyć w takim podziale. Niemniej, jest to dość naturalna technika, w znacznym stopniu poprawiająca czytelność.
  • Temporal Milestones: Metoda polega na podzieleniu naszej przestrzeni na wyraźnie przedziały czasu, np. miesiąc przed, tydzień przed, dzień po, miesiąc po, etc. Czym bliżej do głównej części procesu tym przedziały powinny być krótsze.

Przy dużej ilości zdarzeń sprawne uporządkowanie wymaga najczęściej połączenia kilku technik, w zależności od sytuacji. Ważne jednak aby wprowadzać je stopniowo i nie narzucać od razu kilku metod jednocześnie.

Hot Spots

W trakcie dyskusji nad kolejnością i zasadnością poszczególnych zdarzeń, nieuniknione jest, iż będą pojawiać się mniej lub bardziej emocjonujące dyskusje, dotyczące danego zdarzenia bądź obszaru. Zasadniczo bardzo dobrze - o to przecież nam chodzi. Jednakże nie możemy spowodować aby jedno, bądź kilka, najbardziej kontrowersyjnych zdarzeń zabiło nam cały warsztat. Rolą facylitatora jest wychwytywanie takich raczkujących bomb i gaszenie ich w zarodku. Najlepiej uczynić to przez krótkie opisanie problemu i przyklejenie fioletowej karteczki w danym miejscu. Takie karteczki nazywamy Hot Spots. Należy oczywiście do nich wrócić, ale w momencie gdy będziemy mieć już cały obraz procesu.

Ludzie i Systemy

Zdarzenia nie dzieją się w próżni. Aby nasz obrazek odzwierciedlał w jak najlepszym stopniu świat rzeczywisty nie możemy zapominać o ludziach i systemach, które nas otaczają.

Przyjęta konwencja zakłada użycie:

  • mniejszych żółtych karteczek do oznaczenia ludzi
  • większych różowych karteczek do oznaczenia zewnętrznych systemów

Ludzie

Warto podkreślić, iż umyślnie nie stosujemy tu bardziej wyrafinowanych terminów pokroju Aktor czy Persona. Mówimy po prostu ktokolwiek. I jasne, iż na początku dostaniemy różny przekrój ludzi, od bardzo ogólnych typu użytkownik, po bardzo konkretne typu Pani Księgowa Krysia z 3 piętra. Istotne jest również żeby na siłę nie próbować przypisywać ludzi czy systemów do każdego zdarzenia. Na etapie Big Picture wystarczy jeżeli takie przypisanie zrobimy dla istotnych zdarzeń, tych dla których następuje zmiana typu źródła.

Systemy zewnętrzne

Jest to kawałek procesu, który jest poza naszą kontrolą. Nie koniecznie musi to być system w rozumieniu aplikacji. To może być zewnętrzna firma lub po prostu inny departament w naszej firmie. Zdecydowanie najbardziej podoba mi się definicja samego autora techniki:

“An External System is whatever we can put the blame on”

Alberto Brandolini. Introducing EventStorming (Kindle Locations 1194-1195). leanpub.com.

Metoda gumowej kaczuszki

Po narzuceniu linii czasu oraz dodaniu ludzi i systemów kształtuje się nam już w miarę uporządkowany obraz. Najwyższa pora zweryfikować czy ma on sens od początku do końca, lub od końca do początku…

Dobrym sposobem jest poproszenie kogoś by opowiedział historie, lub jej część, po kolei łącząc zdarzenia. Rolą pozostałych uczestników jest uważane słuchanie i wyłapywanie ewentualnych luk.

Stosujemy tu więc dobrze znaną programistom metodę gumowej kaczuszki, która mówi o tym, iż nasz mózg podczas opowiadania na głos pracuje trochę inaczej niż w przypadku np. cichego analitycznego myślenia.

Opowiadając historie na głos mimowolnie ją walidujemy przed wypowiedzeniem słów (przecież nie zrobimy z siebie idioty przed wszystkimi). Sam opowiadający jest więc już pierwszym bezpiecznikiem wyłapującym dużo luk i nieścisłości, choćby bez pomocy pozostałych uczestników. Jest to wymagające zadanie warto więc podzielić historie i przekazywać kolejnym uczestnikom kolejne jej części. Rolą facylitatora w tym miejscu jest dbanie aby model odzwierciedlał opowiadaną historie. Przesuwamy więc i doklejamy brakujące elementy w locie.

Walidacja wsteczna

Jest to metoda często stosowna przez policyjnych śledczych aby wyłapać ewentualne kłamstwa podejrzanego. Śledczy po usłyszeniu wersji zdarzeń przesłuchiwanego mają w zwyczaju zadawać pytania w stylu: 'a co zrobił Pan przed odłożeniem noża na blat kuchenny?' Ma to na celu weryfikację czy wersja zdarzeń przed chwilą opowiedziana przez podejrzanego nie ma luk i czy aby na pewno jest prawdziwa.

W przypadku EventStormingu, jako śledczy tzn. facylitatorzy, możemy zadawać pytania w podobny sposób, np. 'Czy zdarzenie X to wszystko co może wystąpić przed zdarzeniem Y?', lub głośno oznajmiając 'Zdarzenie 2 jest zawsze poprzedzone przez zdarzenie 1'. Użycie słów 'wszystko' lub 'zawsze' budzi w ekspertach domenowych swoisty alarm, powodując nagłe pobudzenie i ujawnienie wyjątków czy nieścisłości w naszej historii, a tym samym całą masę dodatkowych zdarzeń.

Walidacje wsteczną możemy zacząć, albo od znaczącego końcowego zdarzenia, albo od któregoś z Pivotal Events.

Problemy i okazje

W momencie gdy przeszliśmy od nieuporządkowanego wylewu karteczek, dodania ludzi i systemów, przez narzucenie linii czasu, po weryfikacje, nadchodzi moment na zatrzymanie się i chwilę refleksji. Jest to dobry czas, aby dać uczestnikom szanse spojrzenia na wspólne dzieło z pewnej odległości i zastanowienie się nad problemami i okazjami.

Potencjalnych nowych problemów nie powinno być zbyt dużo, one powinny ujawnić się we wcześniejszych fazach i być oznaczone na fioletowo jako Hot Spoty. Nowe możemy oznaczać dokładnie tak samo.

Warto natomiast zwrócić szczególną uwagę na potencjalne możliwości i okazje, które drzemią w naszej domenie. Oznaczajmy je dla miłej odmiany na zielono.

Dajmy ludziom parę minut na dodanie problemów i okazji, a następnie możemy przeprowadzić głosowanie na najbardziej niepokojący problem, i/lub na najlepszą okazje.

Można w tym celu użyć tzw. Dot-votingu lub bardziej rzucających się w oczy karteczek ze strzałką.

Przeprowadzenie warsztatu

Jakie są najważniejsze elementy aby przeprowadzić udany warsztat Big Picture EventStorming?

  • Zaproszenie adekwatnych ludzi
  • Dobrze przygotowane pomieszczenie, czy to w świecie rzeczywistym, czy wirtualnym
  • Osoba, która odpowiednio poprowadzi warsztat tzw. facylitator.

Zaproszenie adekwatnych ludzi

Najlepiej jeżeli wśród uczestników znajdą się eksperci domenowi z poszczególnych obszarów. Ale tak naprawdę nie ma żadnych wytycznych czy też ograniczeń, jeżeli chodzi o to jakich ludzi powinno się zaprosić. Najlepsze połącznie to mieszanka wiedzy i ciekawości, a przede wszystkim ludzi, którym zależy na rozwiązaniu problemu.

Przygotowanie pomieszczenia

Jeśli mówimy o pomieszczeniu fizycznym to należy wygospodarować sporo wolnej przestrzeni. Miejsca powinno być tyle by móc spojrzeć na całość naszego obrazka z pewnej odległości. Najlepiej odsunąć stoły, biurka i krzesła w jeden kąt pokoju. Usunięcie łatwego dostępu do krzeseł ma tę dodatkową zaletę, iż zapobiegamy rozkładaniu się uczestników z laptopami i ogarnianiu 'swoich spraw' w trakcie warsztatu.

Drugim warunkiem jest oczywiście dostępność sporego kawałka pustej ściany, do której możemy przytwierdzić rolkę papieru. Nie zapomnijmy oczywiście o dużej ilości kolorowych karteczek i (sprawnych!) markerów.

Warsztaty wirtualne

Warsztaty wirtualne to oczywiście inna para kaloszy. Nie będę się tutaj skupiał na ogólnych, dobrych praktykach prowadzenia spotkań online. Jest jednak parę kwestii wartych podkreślenia:

  • Zakłócony odbiór języka ciała. Tradycyjne warsztaty wymagają pozycji stojącej. Taka forma pozwala łatwo odróżnić uczestników aktywnych, stojących blisko karteczek i żywo gestykulujących od bardziej wycofanych, stawiających siebie w roli obserwatorów, których tak naprawdę należy delikatnie zmotywować do działania. Inna rzecz to cały zbiór drobnych gestów, ciężkich to wyłapania na małym obrazie z kamerki, jak podniesione brwi czy zdziwione oczy.
  • Cyfrowe ograniczenia. Główna idea EventStormingu polega na pozbyciu się wszelkich notacji (typu UML czy ERD) oraz wszelkich narzędzi, którymi tylko nieliczni potrafią dobrze operować. A niestety, przeprowadzając warsztaty online jesteśmy skazani na dane narzędzie do modelowania. I jest bardzo prawdopodobne, iż niektórzy spośród uczestników będą, w przeciwieństwie do samoprzylepnych karteczek, używać go pierwszy raz w życiu. Co więcej do tego dochodzą inne niuanse. Jeden uczestnik może mieć w domu dwa 32 calowe panoramiczne monitory, a inny może pracować na 13 calowym monitorze od laptopa. Obszar modelowania, dobrze widoczny u jednego uczestnika, może być kompletnie nieczytelny u innego. Można więc rzec, iż jest to zupełne przeciwieństwo idei EventStormingu. Nie bez powodu Alberto Brandolini w czasach przed pandemią zwykł mawiać, iż najlepszym narzędziem do przeprowadzenia warsztatu online jest bilet na samolot. Niestety czasy się zmieniły, a domena sama się nie odkryje. Trzeba więc zacisnąć zęby i pracować online będąc świadomym co tracimy, a co w zamian zyskujemy.
  • A zyskujemy niesamowicie elastyczną i nieskończoną przestrzeń do modelowania. Łatwość edycji, a przede wszystkim przenoszenia grup wirtualnych karteczek jest ogromnym plusem, bardzo przyspieszającym pracę.
  • Inaczej należy również podejść do czasu trwania warsztatu. Rozpatrzmy jako przykład podejście do przerw. W przypadku tradycyjnych warsztatów przerwy służą na wymianę opinii, pomysłów czy po prostu na integrację między uczestnikami. W takim przypadku choćby całodniowe warsztaty nie stanową dużego problemu pod kątem skupienia i zaangażowania uczestników. W przypadku warsztatów online dłuższe przerwy potrafią wprowadzić efekt wręcz odwrotny. Uczestnicy potrafią wracać rozkojarzeni - jeden odebrał paczkę od kuriera, drugi pomógł synowi w lekcjach online, a trzeci w czasie przerwy przygotował obiad. Warto więc organizować zwarte, maksymalnie kilku godzinne sesje z krótki przerwami, a w razie potrzeby rozbić warsztat na kilka dni.

Czy to w przypadku warsztatu tradycyjnego, czy wirtualnego warto zadbać o miejsce gdzie umieścimy legendę uzupełnianą przyrostowo.

To dopiero początek…

Warsztat BigPicture ma na celu przybliżyć ogólny obraz domeny, z którą się mierzymy, często uwidocznić stopień jej skomplikowania, zarysować obszary odpowiedzialności oraz naświetlić problemy i okazje. Nie oczekujmy natomiast po nim szczegółowego odwzorowania wszystkich procesów wchodzących w jej skład. W tym celu przewidzenie są osobne typy warsztatów kryjące się pod pojęciem EventStormingu, a mianowicie Process Level oraz Software Design. Więcej o nich w kolejnych częściach.

Artykuł powstał na podstawie książki Introducing EventStorming której autorem jest Alberto Brandolini

Idź do oryginalnego materiału