Odkryliśmy ostatnio bardzo ciekawe zależności między naszą ulubioną grą karcianą – Magic: the Gathering, a prowadzeniem projektów w IT. W tym wpisie opowiem czym w ogóle jest tzw. „Magic” oraz wyjaśnię do jakich wniosków doszliśmy.
Czym w ogóle jest Magic: the Gathering?
Magic: the Gathering to najpopularniejsza obecnie kolekcjonerska gra karciana. Podczas rozgrywki gracz wciela się w postać potężnego czarodzieja, który za pomocą stworów, zaklęć i artefaktów stara się pokonać swojego przeciwnika. W najpopularniejszym formacie gry w M:tG do rozgrywki przystępujemy z talią złożoną przed samą grą z 60 kart i walczymy z jednym przeciwnikiem naraz. Osiągamy zwycięstwo po zredukowaniu wszystkich punktów życia przeciwnika lub wyczerpania się jego kart ze stosu.
Budowanie talii, a tworzenie zespołu
W bardzo ciekawym formacie gry, jakim jest draft, talie składamy z ograniczonej puli kart, które dobieramy z “boosterów” przygotowanych na rozgrywkę. W trakcie jednej kolejki dobierania kart możemy wybrać tylko jedną, a resztę przekazujemy kolejnym graczom. Na tym etapie musimy zdecydować i wybrać w jakich kolorach ma być nasza talia i na jakich umiejętnościach ma się opierać.
Podobnie na początku prowadzenia projektu – gdy znamy już specyfikację i wymagania klienta, oraz mamy już wybrane technologie, możemy zacząć dobierać ludzi do projektu. Zespół projektowy konstruujemy z ograniczonej puli deweloperów w firmie, a to czy dana osoba znajdzie się w projekcie uzależnione jest od obłożenia innymi projektami, posiadanymi umiejętnościami, zasobem wykorzystywanych technologii, a czasem tak prozaicznymi rzeczami jak zaplanowany urlop.
Przewidywanie ruchów przeciwnika, a przewidywanie problemów i “wąskich gardeł” w projektach
W każdej potyczce w Magic: the Gathering kluczowym aspektem jest przewidywanie ruchów przeciwnika. Na każdym etapie gry, czy to w Twojej aktywnej turze, czy w turze przeciwnika, należy przede wszystkim skupić się na ewentualnej odpowiedzi przeciwnika na Twoje zagranie. Pozwala to odpowiednio zarządzać zasobami many potrzebnymi do rzucania zaklęć czy przywoływania kreatur, jak i na odpowiednim zagrywaniem kart z ręki do gry.
Ta zasada w prowadzeniu projektów przejawia się analizą i znajdowaniem tak zwanych “wąskich gardeł” na etapie wytwarzania oprogramowania. Są to sytuacje, które mogą spowodować duże problemy programistyczne, a brak ich rozwiązania może wpłynąć na czas ukończenia projektu, a także na jego niektóre funkcjonalności.
Poznawanie przeciwnika, a analiza bezpieczeństwa projektu
W większości formatów gry potyczki między graczami kończą się po dwóch wygranych którejś ze stron. Bardzo często siadając do pierwszej gry z przeciwnikiem nie wiemy jaką ma talię, jaki styl gry preferuje, a także czym może nas zaskoczyć.
Ma to odniesienie w projektach, gdy nawet po analizie ewentualnych problemów, które możemy napotkać na etapie wytwarzania oprogramowania, w ostatecznych testach dostaniemy listę błędów, które należy poprawić. Dlatego każdą zaoszczędzoną godzinę powinniśmy odpowiednio zaplanować tak, aby można ją było wykorzystać na testowanie i wprowadzenie poprawek.

Zaskoczenie przeciwnika doborem kart, a unikanie zaskoczeń w projektach
W formacie “constructed” Magic: the Gathering talię składamy z nielimitowanej ilości wcześniej wydrukowanych i dopuszczonych do gry kart. Jednym z głównych założeń konstruowania talii jest element zaskoczenia, czyli umieszczenie kart, których przeciwnik się nie spodziewa i nie ma na nie odpowiedzi w swojej talii.
W tym przypadku stwierdziliśmy, że w prowadzeniu projektów to my nie możemy dać się zaskoczyć! Gdy klient opowiada o swoich oczekiwaniach biznesowych względem wytwarzanego produktu, naszym zadaniem jest jak najlepiej doprecyzować te oczekiwania, aby nie doszło do elementu “zaskoczenia”.
Gramy do momentu faktycznego zwycięstwa, tak jak prowadzimy projekty do momentu odbioru.
Wielokrotnie spotykałem się z sytuacją, gdy znacząco przeważałem nad przeciwnikiem i byłem pewny zwycięstwa w mojej następnej turze rozgrywki. Tyle samo razy dopadało mnie rozczarowanie, gdy przeciwnik kilkoma zagraniami potrafił odwrócić sytuację o 180 stopni, abym ostatecznie przegrał spotkanie.
To najważniejsza dla nas zasada w prowadzeniu projektów: nie możemy pozwolić na “opuszenie gardy” zbyt wcześnie. Program pomimo przejścia szeregu testów na wersjach deweloperskich, po przeniesieniu na środowisko produkcyjne może nie funkcjonować tak jak było to zakładane. Naszym najważniejszym celem wtedy jest odpowiednia i szybka reakcja na takie sytuacje.
Przygotowanie kart na wymianę, a pomoc deweloperów z zewnątrz projektu
W potyczce w Magic: the Gathering prócz talii składającej się z 60 kart, mamy także możliwość wyboru 15 dodatkowych kart, czyli tak zwanego “sideboardu”. Po pierwszej grze możemy wymienić karty z talii na dowolne karty z sideboardu, aby być lepiej przygotowanym na zagrania przeciwnika w kolejnej rundzie.
W projektach również stosujemy pomoc z zewnątrz zespołu projektowego. Pozwala to na świeże spojrzenie na problemy, z którymi na co dzień mierzy się zespół projektowy. Czasem jest to doraźne wsparcie przy jednym konkretnym zadaniu, a czasem takie osoby są angażowane do momentu oddania projektu klientowi.
Podejmowanie decyzji, a… podejmowanie decyzji
Podejmowanie decyzji jest kluczowym elementem gry w Magic: the Gathering. Zaczynamy od podjęcia decyzji o kolorach talii, przez konkretne karty które mają się w niej znaleźć, sideboard, aż po wybory, które podejmujemy w trakcie potyczki z przeciwnikiem.
W projektach mamy identyczną sytuację: zaczynamy od decyzji jakiego dewelopera zaangażujemy do zadania, jak zaplanujemy jego pracę, kiedy oddamy klientowi wersję beta jego projektu, a także czy pozwolimy na wprowadzanie zmian w piątek w projekcie, który jest na produkcji.
Podsumowanie
Mam nadzieję, że moje wnioski przekonały Was, że prowadzenie projektów jest bardzo podobne do gry w Magic: the Gathering. 🙂 Jak to jest według Was? Może macie swoje spostrzeżenia na ten temat? W jednym i drugim przypadku dajcie znać w komentarzach, co o tym sądzicie. Pamiętajcie obejrzeć też naszego vloga Prowadzenie projektów IT 📅 jest niczym partia Magic: The Gathering 🔮.
Dzięki za uwagę i powodzenia w projektach i na stołach do gry!
PS. Jeśli chcecie zajrzeć do eEngine na “partyjkę” to też dajcie znać 😉