Event Storming
Każdy system posiada jakieś wymagania. Czasem dostajesz je od analityka, klienta, w niektórych sytuacjach Ty musisz je wyciągnąć od biznesu. Niestety w wielu przypadkach jest to trudne zadanie. Event storming jest techniką, która w szybki sposób pozwala zdobyć wymagania oraz spojrzeć na aplikację z wysokiego poziomu.
Przygotowanie
W typowej sesji event stormingu powinni uczestniczyć developerzy, biznes, ekspert dziedzinowy oraz każdy kto jest w stanie coś wnieść do dyskusji. W zależności od złożoności może ona trwać od kilku do nawet kilkunastu godzin. Bardzo przydatne będą karteczki samoprzylepne, pisaki oraz miejsce, gdzie karteczki można przykleić.
Event Storming sesja
Sesja składa się z kilku etapów. Pierwszym z nich jest burza mózgów podczas której są tworzone zdarzenia domenowe. Uczestnicy na karteczkach zapisują istotne dla aplikacji zdarzenia w czasie przeszłym np
Produkt dodany do koszyka Produkt usunięty z koszyka Produkt opłacony
Wszystkie wygenerowane zdarzenia powinny mieć jeden kolor karteczek. Następnie występuje etap grupowania zdarzeń we wspólne przypadki użycia. Po tym można dodać komendy, które odpowiadają za wygenerowanie danego zdarzenia. Dodatkowo w zależności od potrzeb, przy pomocy innych kolorów karteczek można wprowadzić dodatkowe informacje. Mogą nimi być dodatkowe założenia, notatki, kto wywołuje zdarzenie, widoki. Masz tutaj bardzo dużą elastyczność. Podczas grupowania mogą Ci się tworzyć przyszłe agregaty.
Big picture
Event storming posiada wiele zalet. Jedną z nich jest, to że podczas analizy możesz szybko spojrzeć na system z lotu ptaka. Możesz odkryć powiązania pomiędzy poszczególnymi elementami. Tak samo możesz znaleźć jakieś problematyczne miejsca. Dzięki sesji event stormingu język wszechobecny pojawia się w teamie. Kolejnym plusem jest to, że szybko możesz zaimplementować to co wyszło podczas sesji z wykorzystaniem event sourcingu. Wtedy będziesz miał potwierdzenie czy założenia się spinają czy nie. Co też pozwoli zaoszczędzić czas oraz pieniądze.
Analiza
Event storming również jest przydatny podczas analizy mniejszych, pojedynczych funkcjonalności. Taka sesja będzie dużo krótsza i też mniej osób będzie w nią zaangażowanych. Jednak efekty mogą Cię pozytywnie zaskoczyć, zwłaszcza gdy w Twoim zespole istnieje problem z definicją wymagań. Kolejną sytuacją kiedy możesz zastosować tą technikę jest moment, w którym ktoś chce przekazać wiedzę na temat systemu. W łatwy sposób przy pomocy karteczek możesz się dowiedzieć co się dzieje w aplikacji. Każda nowa osoba też może zdobyć tą wiedzę.
Spróbuj
Event storming nie jest skomplikowaną techniką i łatwo możesz zacząć ją stosować. Spróbuj ją zastosować w swoim zespole a efekty mogą Cię zaskoczyć. Jeśli to jest niemożliwe to spróbuj przy pomocy event stormingu opisać aplikację, moduł, funkcjonalność nad którą pracujesz. Może dzięki temu odkryjesz coś o czym wcześniej nie pomyślałeś. Jeśli zainteresowałeś się tematem to polecam awesome event storming, gdzie znajdziesz wiele linków do ciekawych artykułów.