Podobno nie ma głupich pytań, są tylko głupie odpowiedzi. Być może to rzeczywiście jest prawda. Jako moderator forum Warsztatu już nieraz widziałem wątki, które na pierwszy rzut oka nadawały się do eliminacji, ale akurat jakimś dziwnym zrządzeniem losu nie przykuły uwagi żadnego przedstawiciela służb porządkowych i zdążyły się rozrosnąć. Jaki był często skutek? Otóż zamieniały się one w całkiem rzeczowe dyskusje, chociaż – trzeba to przyznać – zazwyczaj trochę niezwiązane z początkowym tematem. Na pewno jednak zasługiwały na dalsze istnienie.
Z tej przyczyny jestem teraz chyba nieco bardziej tolerancyjny niż kiedyś. Zdarza się, że nawet jeśli mam uzasadnione podejrzenia (jak to ktoś ładnie nazwał: “przypuszczenie graniczące z pewnością” ;)), iż z danego wątku nie wyniknie nic dobrego, staram się nie kierować tym pierwszym wrażeniem. Aczkolwiek już ponad rok zajmuję się moderowaniem forum Warsztatu i pewnie daje mi to jakieś doświadczenie pozwalające dokonywać takich intuicyjnych przewidywań.
Zamiast (przed)wczesnych interwencji skłaniam się więc raczej do postawy wyczekującej. Można mi więc zarzucić, że zawsze czekam, aż problemami zajmie się ktoś inny. Albo że – mówiąc dosadniej – pośrednio pozwalam, by forum zalała fala lamerstwa. Ale to chyba nie jest takie proste. Prawdopodobnie bowiem każdy ma inne wyobrażenie tego, jakie wątki powinny się na forum pojawiać, a jakie nie, i oczywiste jest, że wszystkim dogodzić nie można. Plan minimum to eliminacja tych niepożądanych zachowań, co do których nikt nie ma żadnych wątpliwości. Lecz by robić coś więcej, potrzebna jest odpowiednia równowaga między restrykcyjnością a tolerancją.
Niełatwo ją znaleźć. Ale gdyby było inaczej, nie mógłbym co jakiś czas utyskiwać nad ciężką dolą moderatora ;]
Funkcjonowanie dużego i otwartego community – takiego jak forum Warsztatu – wymaga zawsze istnienia pewnych zasad, nawet jeśli byłyby one niepisane. Zebranie ich w formie osobnego dokumentu, na przykład regulaminu, nadaje im większą rangę i przede wszystkim stanowi jasną podstawę dla działań służb porządkowych; w przypadku forum są to oczywiście moderatorzy.
Decyzje (“wyroki” ;)) przez nich wydawane są rzecz jasna zawsze w pewien sposób subiektywne. Najprawdopodobniej nie ma bowiem dobrej metody na radzenie sobie z najbardziej powszechnym naruszeniem regulaminu forum, czyli tzw. lamerskimi wątkami. Są one zazwyczaj zakładane przez osoby dopiero co pojawiające się w społeczności i bywa, że równie szybko z niej znikające :)
Co robić z takimi wypryskami radosnej i mało zachwycającej twórczości? Rozwiązań jest przynajmniej kilka, wśród którym można wymienić:
Te trzy metody mają jedną wadę: są metodami siłowymi i wymagają interwencji owych służb porządkowych. Innym wyjściem jest prosta zasada Don’t feed the trolls, czyli zwyczajne… ignorowanie. Praktyka ta wywodzi się jeszcze z czasów, gdy najpopularniejszą formą komunikacji “ogłoszeniowej” były grupy i listy dyskusyjne. W myśl tej reguły, wątek lub post, który w rażący sposób nie narusza zasad netykiety (czyli nie zawiera np. treści obraźliwych), a jedynie obniża poziom dyskusji – mówiąc wprost: jest lamerski – powinien zostać zwyczajnie zignorowany. Wówczas umrze on śmiercią naturalną, a community będzie niejako regulowało się samo.
Widać już, że to dość utopijne. Im społeczność jest większa i bardziej zróżnicowana, tym ciężej o taką jednomyślną postawę. Dodam jeszcze do tego swoją osobistą refleksję: w czasach panowania tak modnego hasła Web 2.0, zakładającego współtworzenie serwisów przez odwiedzających i nawyk komentowania wszystkiego przez wszystkich, powstrzymywanie się od wypowiedzi jest coraz trudniejsze i rzadsze. Także dlatego troll zawsze zostanie w końcu nakarmiony i będzie grasował dopóty, dopóki jakiś moderator go nie ustrzeli :)
Zawsze lubiłem teorię grafów. Niestety, ta sympatia jest w dużym stopniu nieodwzajemniona, gdyż z obejmującej tę teorię matematyki dyskretnej nie miałem zbyt dobrych ocen :) Mimo to chciałbym dzisiaj polecić pewną grę ściśle związaną z tą dziedziną.
Chodzi o Planarity. Polega ona na tym, by ułożyć wierzchołki danego grafu planarnego tak, by żadne jego krawędzie się nie przecinały. Dla małych grafów jest to oczywiście proste, lecz gdy liczba wierzchołków przekracza kilkanaście, na rysunku zaczyna być już gęsto…
Na forum Warsztatu pojawił się wątek z pytaniem o jakiś systematyczny sposób na odpowiednie ułożenie wierzchołków w tej grze. Z faktu, że o tej pory nie znaleziono tam żadnego pewnego rozwiązania wynika, że to całkiem interesująca gra ;)
Na forum Warsztatu zdarzają się różne problemy. Część z nich dotyczy nieznanych przyczyn błędnego funkcjonowania programu lub jakiegoś kawałka kodu. Z pewnością nie jest tak, że takie wątki są z góry uznawane za niepożądane. To, co o tym decyduje, to przede wszystkim treść, opisowość i precyzja.
A z tym bywa kiepsko. Bardziej doświadczeni programiści wiedzą oczywiście, że do wyeliminowania błędu potrzebna jest dokładna wiedza, w jakich okolicznościach on występuje. A już zupełnie niezbędne jest określenie, co tak naprawdę się dzieje: błędny rezultat funkcji, wyjątek czasu wykonania, zawieszenie się programu, bluescreen, spalenie płyty głównej (no, może przesadzam ;)) ?…
Nierzadko jednak za cały opis ma wystarczać mgliste stwierdzenie, że coś nie działa. “Serio?” – chce się odpowiedzieć – “więc idź i to napraw ;P”. Przy tak skąpo opisanych objawach trudno przecież oczekiwać, żeby ktokolwiek mógł wywróżyć, co tak naprawdę jest ich przyczyną.
Czasem ta lakoniczność jest spowodowana tym, że dana osoba traktuje fakt niedziałania napisanego przez siebie kodu wręcz jako życiowe niepowodzenie lub – co gorsza – osobistą zniewagę. A gdy w grę wchodzą takie emocje, z zebraniem potrzebnych informacji może być kłopot…
Próbuję się tu wczuć w taką postawę, ale prawdę mówiąc zupełnie jej nie rozumiem. Może każdy na początku przygody z programowaniem reaguje podobnie, a ja zdążyłem już po prostu zapomnieć, że kiedyś mi się to zdarzało? A może jednak zależy to od charakteru i sprawia, że osoby biorące wszelkie niepowodzenia (w tym przypadku błędy) za bardzo do siebie mają trudności w zostaniu dobrymi programistami?
I czy faktycznie podejście emocjonalne tak bardzo przeszkadza?… Nie wiem, jak w jest w istocie, lecz wiem jedno: ostatnio zdecydowanie za często zajmuję się dziwnymi problemami :)
Jako moderator forum Warsztatu dość często spotykam się z różnymi przejawami tak zwanego lamerstwa. Część z nich jest bardzo typowa, na czele z pokazywaniem kawałka kodu (zwykle obleśnego) i zadawaniem nieśmiertelnego pytania:
No i co tu jest źle?!
Nie trzeba się domyśleć, że reakcja na takie kwiatki jest zwykle dość gwałtowna :)
Innym przykładem lamerstwa są zbyt ogólne pytania – czyli takie, na których odpowiedzi (o ile w ogóle istnieją) kryją za sobą całe, nierzadko bardzo obszerne dziedziny. “Jak napisać grę podobną do …?” czy “Jak dodać do gry tryb multiplayer?” to całkiem reprezentatywne przykłady. Co można zrobić, kiedy napotka się tego rodzaju okaz?
Oczywiście można zareagować drastycznie i represyjnie. Twierdzę jednak, że każdego (no, prawie każdego ;)) lamera da się w końcu odlamić. Nie dysponujemy naturalnie nieograniczonym czasem, by w ten sposób załatwiać wszystkie przypadki. Z odrobiną dobrych chęci można chyba jednak coś zdziałać.
Otóż według mnie dobrą receptą na ogólne pytanie są… pytania bardziej szczegółowe. I to w dużych ilościach, zadawane w sposób logiczny i rzeczowy. Osoba zasypana gradem takich konkretnych pytań, poruszających szczegółowe kwestie z danej dziedziny, na pewno będzie przynajmniej uświadomiona o obszerności tematu, który tknęła. A jeśli posiada odpowiedni zasób umiejętności wyszukiwania – którym to powinien się wykazywać każdy programista i delikwent aspirujący do tego miana – wtedy użyje tych pytań jako wskazówek do poszukiwania informacji na własną rękę. Na forum powróci zaś wówczas, gdy pojawią się bardziej konkretne zapytania i problemy, które z pewnością będą mogły liczyć na przyjaźniejszy odzew.
Czy to zbyt optymistyczny scenariusz? Być może. Na szczęście dość szybko okazałoby się, czy taka okrojona marchewka działa. Jeśli nie, wtedy zawsze można sięgnąć po kij :)