Niby o piłce, a na Daj się poznać, czyli Morena Gdańsk – Karlikowo Sopot

Zaczyna się runda wiosenna polskiej ligi, więc pora nieco przyspieszyć prace nad Matchloggerem, żeby dało się zapisywać swoje mecze. Miałem dzisiaj okazję być na B-klasowym derby Trójmiasta pomiędzy Moreną Gdańsk, a Karlikowem Sopot. O samym meczu nie napiszę jednak za wiele, jeśli ktoś ma ochotę dowiedzieć się więcej, to polecam albo relację na regiowyniki.pl, albo album ze zdjęciami z meczu zrobionymi przeze mnie. Opowiem za to co nieco o różnych sposobach patrzenia na mecz i tym, jak te sposoby mają się do procesu wytwarzania oprogramowania.

Uwaga, post zawiera zdjęcia o łącznej wadze kilkunastu MB. Przed przejściem na „czytaj dalej” upewnij się, że korzystasz z Wi-Fi, jesteś na kablu albo masz odpowiednio duży pakiet transferu danych.

Zdjęcie przedstawia grupkę B-klasowych piłkarzy, gotowych do rozegrania meczu. Na zdjęciu widocznych jest 22 piłkarzy, jeden sędzia główny i dwóch liniowych, a także osoby na ławkach rezerwowych obu klubów. Każdą z tych osób interesować mogą inne rzeczy związane z meczem. Spójrzmy na przykład na chłopca, który stoi po lewej od sędziego głównego. W B-klasie często zdarza się, że na mecz przyjeżdża tylko jeden sędzia, a sędziowie liniowi wybierani są przez kluby. W tym wypadku obaj liniowi byli związani z Moreną – jeden to jeden z rezerwowych piłkarzy, drugi to, jeśli dobrze zauważyłem, syn osoby odpowiedzialnej za zabezpieczenie medyczne meczu. Choć rezerwowego raczej nie interesuje zbytnio to, że musi stać przy linii bocznej z chorągiewką i udawać, że interesuje go to, co dzieje się na boisku, to dla chłopca może to być jego debiut jako sędziego liniowego – dzień, od którego zacznie się jego kariera sędziego piłkarskiego (;)).

Z perspektywy Pomorskiego Związku Piłki Nożnej, ważne jest, gdzie odbył się mecz, kto był sędzią, jakie były składy zespołów, ile padło bramek i kto je strzelił, a także kartki, zmiany i inne zdarzenia. Wszystko to jest zapisywane w protokole meczowym, który trafia do związku.

Dla piłkarza, który uczestniczy w meczu, ważne może być to, w jakim klubie grał, ile bramek strzelił, ile minut rozegrał, czy i jakie dostał kartki, czy był kapitanem.

Dla trenera ważne jest, kogo wystawił na jakiej pozycji i jak ocenia występ poszczególnych zawodników. Zależnie od swoich zainteresowań, może też zbierać wiele innych statystyk z meczu, jak kreatywnym w tym zakresie można być, świetnie pokazuje Football Manager 🙂

Kierownik zespołu musi dbać z kolei o to, by wszyscy wystawieni piłkarze mieli karty zawodnicze, żaden z wystawionych zawodników nie pauzował za kartki i żeby nie przekroczyć limitu zmian – za wszystko to grozi walkower. Ważne jest też, ile kartek otrzymała drużyna (za kartki płaci się kary), czy opłacono boisko, sędziego i ile piłek zaginęło w pobliskich strumykach w trakcie meczu, by uzupełnić zapasy przed następnym.

Sędziego interesują rzeczy, które musi wpisać do protokołu meczowego – tak jak na przykład tę czerwoną kartkę za kłótnię z sędzią. Jeśli jest maniakiem statystyk jak ja, może też chcieć zapisywać sobie drużyny, którym sędziował (czasem to może być przydatne, zwłaszcza jeśli, po poprzednim meczu z danym zespołem musiał wzywać policję, by wyjechać ze stadionu) czy boiska, na których pełnił tę rolę. Ważne może też być, czy w danym meczu był sędzią głównym, liniowym, czy może technicznym (w wyższych ligach).

Bramkarza interesować może, jak długo zachował czyste konto i ile bramek wpuścił (w niektórych przypadkach też, ile goli strzelił). W wypadku bramkarza Moreny, wpuścił 6 bramek…

…a bramkarz Karlikowa, dwie.

Piłkarzy z pola, zwłaszcza napastników, najbardziej interesować będzie liczba strzelonych bramek.

Osoba z obsługi medycznej (w tle) może być zainteresowana tym, ile razy musiała interweniować, ile i jakich kontuzji ma aktualnie w zespole.

Na trybunach również możemy mieć różne perspektywy. Choć tutaj najprawdopodobniej wszyscy obecni to najprawdopodobniej członkowie rodzin, partnerzy i znajomi piłkarzy, na meczach często można odróżnić kilka różnych typów oglądających.

Fani klubu, którzy jeżdżą za nim po całym kraju i za granicę mogą być zainteresowani tym, gdzie już ze swoim klubem byli, jak często na meczach była oprawa, ile osób było w młynie, czy było piro (race, efekty pirotechniczne).

Dziennikarze najbardziej zainteresowani będą wynikiem meczu, składami i zmianami w tabeli.

Fotoreporterzy – uzyskaniem akredytacji, aby móc robić zdjęcia bliżej boiska. Mogą być też zainteresowani godziną meczu, by lepiej dobrać sprzęt i swoje ustawienie do panujących warunków.

Groundhopperzy – zapisaniem sobie informacji, jakie kluby oglądali, gdzie, czy było dostępne piwo, ile osób przyszło, ile kosztował catering (pociąg do futbolu, anyone?). Ładnie też wyglądają mapy z listą odwiedzonych państw.

Obserwator meczu z ramienia Pomorskiego Związku Piłki Nożnej – tym, kto sędziował, jakie błędy popełnił i wystawioną sędziemu oceną. W przypadku incydentów, może też być zainteresowany ich rejestrowaniem, by zaproponować kary dla danego zespołu, takie jak na przykład mecz bez udziału publiczności.

Okej, ale jak to się ma do wytwarzania oprogramowania?

Gdy projektuje się system, który ma „obsługiwać mecze piłkarskie”, albo nawet szerzej, „obsługiwać rozgrywki sportowe”, jednym z ważnych elementów jest zdefiniowanie tak zwanych user roles, czyli ról użytkowników. Powyżej wymieniłem kilkanaście ról, które można zidentyfikować dla jednego meczu piłkarskiego, a nie są to jeszcze zdecydowanie wszystkie. Po zdefiniowaniu ról, które można obsłużyć, ustala się, które z nich chce się obsługiwać. Najczęściej to jakiś podzbiór, czasem wręcz jedna konkretna rola – nie da się po prostu zrobić wszystkiego naraz, a w przypadku sukcesu zawsze do tematu można podejść iteracyjnie i zająć się kolejnym zbiorem przypadków.

Jedną ze znanych praktyk w zwinnym wytwarzaniu oprogramowania jest tworzenie person, czyli konkretnych postaci, które mają odwzorować użytkownika należącego do danej roli. Często są to dość skomplikowane opisy, które uwzględniają cechy charakteru zupełnie niepowiązane z samym projektem. Mają one pomóc zespołowi jak najbardziej wczuć się w rolę tego użytkownika przy projektowaniu interfejsu aplikacji. Przykładowo, profil użytkownika, który będzie wpisywał się w rolę groundhopper, ale i częściowo w rolę piłkarz, może wyglądać tak (zwykle można się jednak spodziewać, ze będzie nieco dłuższy):

Radosław, 39 lat, dziennikarz i redaktor telewizyjny, mieszka w Warszawie. Ma imponującą brodę i wzrost zbliżony do autora niniejszego profilu. Często można go spotkać w barze Ulubiona, skąd nadaje snapy, w których spożywa znaczne ilości alkoholu, śpiewa i podskakuje. Gdy tylko ma okazję, planuje wyjazdy zarówno zagraniczne, jak i krajowe. Jeśli nie spóźni się na samolot, ogląda głównie mecze klubów, które najprościej określić jednym słowem – paździerz. Prowadzi popularny kanał na Youtube, na którym prezentuje relacje ze swoich wyjazdów, okraszane solidną dawką przekleństw. Wypromował kilka klubów piłkarskich – między innymi LZS Chrząstawa, w którego składzie ostatnio miał okazję zadebiutować w sparingu. Wieczorami gra też w warszawskich ligach futsalowych.

Do persony dodane często jest też zdjęcie. Taki opis jest znany wszystkim członkom zespołu i odnoszą się do niego przy planowaniu i projektowaniu oprogramowania. W przypadku Radosława, wiemy, że to osoba, która ma już pewne zdolności obsługi komputera, skoro jest aktywny w Internecie i zajmuje się między innymi produkcją wideo. Nie trzeba więc dla niego maksymalnie upraszczać interfejsu użytkownika, ale z kolei ważne może być, by system był w miarę odporny na używanie go pod wpływem alkoholu – czy to przez dawanie możliwości przeglądu literówek, czy dokonywania później zmian.

Zaleca się, żeby nie poprzestawać na jednej personie. Jedną rolę pełnić może wiele osób o różnych charakterystycznych dla nich cechach i przypadkach użycia systemu – jeden groundhopper może być bardzo zainteresowany wszelkiego typu statystykami, w rodzaju „w meczu, który zobaczyłeś, padła właśnie tysięczna bramka, którą widziałeś”, a inny skupiać się na albumie ze zdjęciami siebie na trybunach różnych stadionów, albo zdjęciami biletów z różnych meczów.