From Events to Business… and back

Złożoność i trudność projektów IT często nie leży w oprogramowaniu, ale w zrozumieniu natury samego problemu. A co, jeśli nasza wiedza o nim jest mglista, niepełna, a wymagania wzajemnie sprzeczne? Jeśli nie znamy aktorów, procesów, reguł biznesowych, a co gorsza, nie rozumiemy potrzeb samego klienta? Ryzyko dostarczenia niewłaściwego oprogramowania jest tu wręcz ogromne… Potrzebujemy więc narzędzia ułatwiającego pozyskiwanie wiedzy eksperckiej, angażującego wszystkie strony w proces odkrywania i modelowania domeny problemu. A jeśli to samo narzędzie będzie można wykorzystać do modelowania software’u, tym lepiej. Event Storming przynosi odpowiedzi na wszystkie te wyzwania. Wykorzystując eventy, istotne zdarzenia zachodzące w biznesie, pozwala on w prosty sposób zamodelować zachodzące w nim procesy. Nie trzeba być przy tym analitykiem biznesowym z wieloletnim doświadczeniem, wystarczy kierować się prostą zasadą: „porozmawiajmy o faktach”. Posługując się językiem biznesowym i wciągając wszystkich strony w proces stormingu, mamy szansę na wypracowanie właściwego rozwiązania, na długo przed napisaniem pierwszej linii kodu. Bo być może nie warto jej w ogóle pisać, a pożądany cel można osiągnąć w zupełnie w inny sposób? Identyfikacja eventów jest tu tylko pierwszym krokiem. Wgryzając się coraz głębiej w problem możemy modelować oprogramowanie w oparciu o techniki DDD, tworzyć scenariusze testów akceptacyjnych, projektować UI/UX, czy wreszcie zatoczyć koło i usprawniać same procesy biznesowe, dysponując szerszą wiedzą o nich samych… A może cały ten proces warto rozpocząć od jednego prostego pytania, „dlaczego?”. Event Storming może być narzędziem, które zmieni organizację i jej kulturę, będąc przy tym rewelacyjnym sposobem projektowania kodu . W końcu w pracy software developera o to na koniec dnia chodzi, aby pisząc kod rozwiązywać istotne problemy klientów. Właściwy kod dla właściwego problemu.