Po przybliżeniu czym jest projektowanie oprogramowania kontynuujemy cykl Tech Leada z informacjami o metodach projektowania. Na tapet bierzemy pierwszą metodę Event Storming - Big Picture.
Ogólnie opowiedziałem już o Event Stormingu w moim artykule Event Storming - jak odkrywać nieznane.
Nadszedł czas, by przejść poszczególne poziomy tej techniki. To pozwoli na lepsze zrozumienie, na czym polega każdy krok, oraz w którym momencie go wykorzystywać.
Warsztat Event Storming zwykle dzieli się na trzy poziomy:
- Big Picture – w którym skupiamy się na ogólnym przepływie wydarzeń w naszym produkcie.
- Process Level – w nim koncentrujemy się na szczegółowych etapach procesów w systemie informatycznych.
- Design Level – w którym skupiamy się na projektowaniu konkretnych modelach programistycznych i bazodanowych.
Big Picture - wprowadzenie
Event Storming Big Picture to technika, która pozwala nam w szybki sposób zrozumieć procesy biznesowe klienta. Za pomocą zdarzeń:
- opisujemy poszczególne etapy procesu,
- pokazujemy przypadki brzegowe,
- określamy zależności,
- definiujemy miejsca, gdzie nie mamy wystarczającej wiedzy,
- porządkujemy słownictwo.
Celowo technika Event Storming Big Picture na tym poziomie nie jest techniką 100% spójną. Na tym poziomie zależy nam bardziej na zrozumieniu z interesariuszami, a mniej na dokładności. Na dokładność przyjdzie pora na kolejnych poziomach.
W tym artykule będziemy się tylko skupiać na poziomie Big Picture. Dlatego też dalej w artykule usunę słowo “Big Picture” i będę się tylko posługiwać zwrotem “Event Storming”.
Dlaczego przeprowadzamy Event Storming?
Event Storming to narzędzie wykorzystywane na wiele sposobów.
Jednym z najpopularniejszych zastosowań jest strukturyzacja nowego rozwiązania z biznesem. Warsztat pozwala lepiej zrozumieć z zakres, złożoność, funkcjonalności oraz powiązania danego systemu. Oprócz tego umożliwia analizę problemów, zagrożeń, szans i możliwości związanych z funkcjonalnościami.
Drugim powodem przeprowadzania Event Stormingu jest analiza obecnego rozwiązania. Często systemy Legacy mają bardzo głęboką złożoność, której nie widać na początku. Warsztat pokazuje tą złożoność, skomplikowane reguły, czy zależności do systemów zewnętrznych. Te informacje są kluczowe w procesie usprawniania legacy systemów.
Technika może być używana jako narzędzie do brainstormingu, pozyskiwania nowych pomysłów na implementację, wdrożenia nowego pracownika czy kreatywny początek warsztatów.
Typowy plan wasztatu
Warsztat Event Storming składa się z kilku faz:
- Chaotyczna eksploracja
- Porządkowanie linii czasu
- Dodatkowa notacja
Aczkolwiek podchodziłbym do tego umownie - na rzeczywistym warsztacie trudno tak jasno wydzielić poszczególne części.
Chaotyczna eksploracja
Pierwszym naszym zadaniem jest jak najszersze rzucenie zdarzeń biznesowych na naszą tablicę. Ale, żeby to wykonać to trzeba mieć czym. 😃
Podczas warsztatu Event Storming najważniejszym elementem są pomarańczowe karteczki, symbolizujące zdarzenia biznesowe.
W pierwszej fazie nazywanej nie bez powodu Chaotyczną Eksploatacją – skupiamy się na jak najszerszym zebraniu wszystkich możliwych zdarzeń biznesowych związanych z danym procesem.
Poniżej taki przykład z domeny wypożyczania rowerów:
W fazie Chaotycznej Eksploatacji nie ma znaczenia kolejność wydarzeń, czy duplikaty. Naszym celem jest jedynie zebranie jak największej liczby informacji. Dzięki temu mamy dobrą bazę, na której możemy oprzeć kolejne fazy warsztatu i opracować optymalne rozwiązania biznesowe.
Porządkowanie linii czasu
Drugą fazą Event Stormingu jest porządkowanie zdarzeń biznesowych na tablicy. Tutaj skupiamy się na budowaniu pojedynczych procesów, które razem wizualizują całą odpowiedzialność biznesową.
Aby to osiągnąć, narzucamy na tablicę linię czasu i zgodnie z nią układamy zdarzenia. Czas biegnie od lewej strony do prawej, a więc układamy zdarzenia tak, aby to odwzorowywały.
Teraz jest pora na porządkowanie:
- usuwanie duplikatów,
- wybieranie najlepszego określenia na daną aktywność,
- uspójnianie języka,
- wypracowywanie spójnej wizji procesu.
W trakcie porządkowania pojawiają się dodatkowe informacje i problemy , które również umieszczamy na tablicy. Dzięki temu będą widoczne dla wszystkich uczestników warsztatu. W tej fazie najczęściej wprowadza się 3 nowe elementy notacji:
- punkt zapalny - czerwona karteczka
- notatka - jasna karteczka
- proces - pozioma taśma
To ułatwi dalsze prace nad strukturyzacją danego procesu biznesowego. Przykłady takich karteczek poniżej:
Pełen rezultat możesz zobaczyć poniżej (potrzebne będzie powiększenie 😅):
Po zakończeniu fazy porządkowania linii czasu możemy dalej pracować nad szczegółowym rozpisaniem procesów lub zastanowić się nad kolejnymi krokami prowadzącymi do optymalizacji całego systemu.
Dodatkowa notacja
Pracując nad tablicą w czasie Event Stormingu, można wykorzystać dodatkowe informacje, które pomogą lepiej zrozumieć zdarzenia biznesowe.
Aby to osiągnąć wprowadzamy specjalną notację, w której każda karteczka ma swój własny kolor. Dzięki temu łatwo jest odróżnić jedną informację od drugiej. W ramach notacji w Event Stormingu często używamy oznaczeń takich jak:
- system zewnętrzny - różowa szersza karteczka
- aktor - mniejsza jasna karteczka
- usprawnienie - zielona karteczka
Przykład takiego wykorzystania:
Można również dostosować notację do własnych potrzeb. Takie oznaczenie pozwala na wizualizację dodatkowych informacji , które będą przydatne w dalszej pracy nad optymalizacją procesów biznesowych. Przykład dodatkowej notacji Action Point z innego mojego artykułu.
Event Storming – podsumowanie
Na koniec warsztatu powinniśmy być w stanie dostrzec główne procesy i podprocesy, które tworzą naszą domenę biznesową.
W zależności od naszych potrzeb mamy teraz kilka opcji do wyboru:
- Podsumowanie sesji – możemy zebrać główne informacje i dokonać ich skrótu, aby mieć klarowne podsumowanie całego wydarzenia.
- Grupowanie procesów – możemy zorganizować zebrane informacje, aby w sposób uporządkowany przedstawić ustrukturyzowane procesy.
- Zidentyfikowanie niewiadomych do dalszej analizy – warto spisać wszelkie niewiadome, które pojawiły się w czasie sesji Event Stormingu, aby móc je później dokładniej zbadać i przeanalizować.
- Określenie głównych usprawnień – przyjrzymy się zebranym procesom i zidentyfikujemy potencjalne obszary, w których możne wprowadzić ulepszenia i usprawnienia.
- Analiza zysków i strat związanych z implementacją procesów – warto przeanalizować konsekwencje wprowadzenia nowych procesów i ocenić ich potencjalne korzyści oraz możliwe ryzyka i straty.
Po wykonaniu tych czynności możemy płynnie przejść do wyodrębnienia subdomen i kontynuować pracę z Event Stormingiem na poziomie Process Level.
Polecam
Na koniec tradycyjnie polecam dwie książki, które pozwolą wam zdobyć więcej wiedzy w temacie Event Storming Big Picture:
- Introducing EventStorming Alberto Brandolini - najszerszy opis tej techniki.
- Hands-On Domain-Driven Design Alexey Zimarev - świetnie pokazuje jak przejść z Event Stormingu do projektowania oprogramowania.