Człowiek zazwyczaj boryka się wieloma problemami. Ciągły rozwój technologiczny wymusza na naszym gatunku równoległy rozwój intelektualny. Tworzymy coraz to bardziej zaawansowane urządzenia/oprogramowanie. Wymyślamy sposoby budowania jak najbardziej odzwierciedlające istotę problemu.
Jesteśmy jenak istotami ludzkimi, popełniamy błędy. To jest element naszego życia. Nie inaczej jest w przypadku powoływania do życia ambitnych idei. Kilkukrotnie stawałem przed takim problemem, czasem się udawały. Innym razem stawiały mnie na krawędzi załamania nerwowego. A wszystko to wynika z faktu, że nie jesteśmy jasnowidzami, nie wszystko jesteśmy w stanie przewidzieć (choć wiele próbujemy).
Przez taką sytuację nie kończymy projektów, projektujemy je bardzo źle, następnie znikamy w niewyjaśnionych okolicznościach następnie pojawiając się w innej firmie;). Zostawiamy problemy za sobą. Czy można tego uniknąć, zapewne nie wszystkiego ale można wdrażać mechanizmy niwelujące takie sytuacje.
Wszechświat pełen zdarzeń
Jeżeli głębiej się zastanowić, to nasz wszechświat składa się ze zdarzeń i reakcji na nie. Wyzwalają one działanie innych aspektów życia. Mógłbym subiektywnie stwierdzić, że to one kontrolują wszystko. To taka reakcja łańcuchowa, najpierw wzbudzone zostaje pierwsze zdarzenie. Kolejne są skutkiem pierwszego, a dokładniej sprawę ujmując akcją jaką podejmujemy reagując na zaistniałe zdarzenie.
Przykładem tutaj może być prosta sprawa. Jazda samochodem:
Wsiadłem do samochodu -> Zapinam pas -> Zapiąłem pas -> Przekręcam kluczyk -> Inicjowanie gotowości samochodu do odpalenia -> Samochód gotowy do odpalenia -> Kluczyki przekręcone na zapłon -> Odpalanie -> Samochód zapalił -> Włączam światła -> Światła włączone -> Wybieram bieg -> itd.
By wykonać taką czynność, musi nastąpić wiele zdarzeń oraz reakcji na nie. To bardzo skomplikowana sekwencja.
Wygląda to mniej więcej tak: Zdarzenie} - reakcja - zdarzenie} - reakcja - zdarzenie} - reakcja…
Można podejść do każdego aspektu, życia i zaobserwować występowanie różnych zdarzeń oraz innych elementów składowych pozwalających na ułożenie procesu danej czynności lub sytuacji.
Wydarzył się - przełom
Skoro zdarzenia są tak bardzo ważne to może warto było by zrobić z tego użytek, odpowiednio opakować wzbogacić i stworzyć sposób na opisywanie procesów jakie występują w pobliżu nas.
Tutaj wkracza Alberto Brandolini z przepisem na pizze ;). Przedstawił światu swój autorski sposób na opisywanie procesów o nazwie EventStorming.
Opracował On technikę modelowania wszystkiego :) przy pomocy banalnych post-it-ów. W prostocie siła i tak właśnie można powiedzieć o EventStorming-u. Jest to potężne narzędzie.
EventStorming pozwala nam wykonać wiele przejść przez model w różnym kontekście:
- Eksploracja nieznanych obszarów,
- Szukanie problematycznych miejsc.
- Dzielenie się wiedzą.
- Modelowanie bieżącego procesu - odkrywanie jak naprawdę coś działa:).
Dla mnie osobiście to swego rodzaju podróż w przyszłość. Będą w chwili obecnej + kilka h. Można stworzyć prototyp aplikacji i zobaczyć jak będzie się zachowywała. A co ważniejsze zweryfikować pewne ścieżki i przy pomocy mazaka i karteczki szybko i tanio zmienić decyzję.
W procesie projektowania gier stosuje się technikę o nazwie Paper Prototyping gdzie przy pomocy papieru i innych biurowych narzędzi przygotowujemy grę w kilka godzin. Następnie gramy w tą grę, tak jest to takie sztuczne ale pozwala na sprawdzenie pewnych projektowych założeń. Na tej podstawie można podjąć już jakieś decyzje usprawniające i zaoszczędzić dużo $. Technika jest także stosowana w innych dziedzinach np.: projektowaniu interfejsów użytkownika.
Sprawdzanie założeń w czasie implementacji jest bardzo kosztowne. Przy pomocy papieru - tanie.
Szmal, kasa, mamona - jak zwał tak zwał.
Gdzie jest kasa w tym wszystkim. Przykład projektu który ze względu na nie odpowiednie zaprojektowanie nie został zrealizowany. Załóżmy, że projekt mógłby trwać 1 rok i pracowało nad nim 10 osób. Zespół w trakcie prac odkrywa, że jest pewnie problem który nie został zauważony bazując tylko na dokumentacji i wymaganiach. Problem jest na tyle duży, że wymaga przebudowy istotnej części systemu. Daje to dodatkowe 60 dni pracy zespołu.
Do wyliczeń przyjmijmy, że każdy członek zespołu otrzymuje stawkę 100pln/godzinę.
10 osób * 60 dni * 100pln/godzinę = 480 000 pln.
W sesji EventStorming-owej zakładamy 20 uczestników, każda osoba posiadająca wiedzę na temat rozpoznawanego procesu do tego zespół który implementuje rozwiązanie.
Przeprowadzamy dwie sesje po 4 godziny. W tym czasie zespół modeluje system, konsultuje się między sobą i wykrywa wiele niejasności w stosunku do wymagań i projektu. Konsultacje z klientem, ekspertami i programistami doprowadzają do wyjaśnienia problematycznych obszarów w projekcie.
W trakcie tego procesu istnieje bardzo duża szansa na to, że problem wykryty wyżej w trakcie implementacji został by wykryty. W zasadzie to wykryto by wiele problematycznych miejsc, a dodatkowo stworzony model bardziej odzwierciedlał by to jak faktycznie powinien wyglądać model systemu. A dlaczego? To proste w procesie modelowania uczestniczyło wiele osób, dyskusje, analizy i rozwikłanie różnych obszarów doprowadziły do lepszego zrozumienia projektu i optymalizacji w miejscach, w których wcześniej nie widzieliśmy. Przecież mamy model na papierze, który łatwo było modyfikować. Bo to papier.
Bazując na poprzedniej stawce za godzinę.
20 osób * 8 godzin * 100pln/godzinę = 16 000 pln.
Reasumując jeżeli problem został by wykryty na sesji EventStorming-owej to wówczas można mówić o teoretycznym zaoszczędzeniu 464 tyś. pln. Tak oczywiście to tylko moje wyobrażenia. Jednak mogły by zaistnieć.
Analiza istniejących systemów, tak samo jak i odkrywanie nowych może spowodować odkrycie interesujących miejsc dzięki którym można zoptymalizować aplikację, ulepszyć. Jest całkiem prawdopodobne, że odkrycia i ich eliminacja spowodują oszczędności finansowe.
Myślę, że ten przykład jest przejaskrawiony jednak ukazuje miejsce gdzie skryte są pieniądze. Stosując EventStorming możemy mieć szansę w ominięciu bagna. Skutkiem będzie wykrycie większości problemów jakie napotkali byśmy w trakcie wdrażania już w trakcie sesji EventStorming-owej.
Na koniec
Ja jestem zafascynowany tym tematem, jeżeli też wzbudziłem w Tobie pożądanie lub przynajmniej chęć użycia swojego otwartego umysłu do zwiększenia świadomości na temat EventStorming-u. To zapraszam na moją listę, będę się dzielił na niej informacjami na temat tej nowej włoskiej techniki przygotowywania pizzy.
Ruszyła Szkoła EventStormingu. Zapraszam.