Marzec
31
2009

Erystyka w programowaniu

Słowa kluczowe: , , | Kategorie: Filozofia
No Gravatar

Erystyka jest sposobem prowadzenia dyskusji opartym o fortele, pułapki, ataki, zamiast o rzeczowe argumenty. Więcej informacji na temat samego pojęcia można znaleźć w Wikipedii. Ale co to ma wspólnego z programowaniem?

Osoby niezwiązane z informatyką często uznają tę naukę za pewną dziedzinę matematyki. Osobiście nie mogę zgodzić się z tym stwierdzeniem – gotów jestem nawet pokusić się o zaprezentowanie informatyki jako nauki humanistycznej (już sobie wyobrażam te wielkie oczy i pełne oburzenia komentarze).

Programista styka się z rozwijanym projektem na dwóch poziomach – kodowania i całej reszty. Podczas gdy koder pracuje nad algorytmami zawartymi w pojedynczych metodach – czyli często nad matematycznym rozwiązaniem problemu – analitycy i projektanci prowadzą niejednokrotnie filozoficzne rozważania nad wyższością jednego rozwiązania nad drugim.

Niestety często w dyskusji pojawiają się wypowiedzi zainspirowane przez destrukcyjne oblicze Eris (może jednak warto zajrzeć do Wikipedii). Takie rozmowy raczej nie skończą się porozumieniem – spodziewałbym się narastającego konfliktu i decyzji podjętej przez osobnika alfa (czyli na wyższym stanowisku). Taka jednostronna decyzja (jak to w przypadku nauk humanistycznych) wcale nie musi być lepsza.

W dalszej części zamierzam przedstawić kilka nieuczciwych sposobów prowadzenia dyskusji, które przekradły się z filozofii i polityki do informatyki.

Argumentum ad verecundiam

pozamerytoryczny sposób argumentowania, polegający na powoływaniu się na jakiś autorytet

źródło: Wikipedia

Może najlepiej pokaże to jakaś scenka.

Młody programista proponuje aby przy kolejnym projekcie zastosować środowisko Sumatra (mam nadzieję, że takie nie istnieje), ale inni członkowie zespołu są przyzwyczajeni do starego dobrego Antioch. Nowicjusz przytacza wiele argumentów na poparcie swojego stanowiska – technologia jest darmowa, istnieje wiele standardowych bibliotek i rozszerzeń, itp. itd. W końcu głos zabiera kierownik projektu: „Szef dużego koncernu, Phill Doors, stwierdził, że środowisko to jest mniej wydajne od standardowego Antioch”.

Cóż ma powiedzieć młody programista? Zdaje sobie sprawę, że Sumatra jest nieco mniej wydajna, jednak różnica w przypadku omawianego projektu jest niezauważalna. Poza tym Phill Doors jest właścicielem firmy produkującej Antioch. Ale przecież nie można podważać autorytetu tak szeroko cytowanego przez kierownika.

Można się też spotkać z prośbą o poparcie tezy jakimś cytatem lub publikacją. Jednak nie widzę sensu w takim podejściu do dyskusji. Po pierwsze osoba wymagająca potwierdzenia pochodzącego od innych osób pokazuje, że nie liczy się ze zdaniem i argumentacją rozmówcy. Poza tym Sumatra jest w danej sytuacji dobrym środowiskiem – niezależnie od tego, ile autorytetów wypowie się na jego temat pochlebnie czy też krytycznie.

Argumentum ad populum

pozamerytoryczny sposób argumentowania, w którym mówca odwołuje się do gustów, upodobań i przesądów tłumu

źródło: Wikipedia

Większość programistów używa metodyki KIMG2 (pol. Kopnij Inne Metodyki Gdzieś), zatem jest to najlepsza metodyka – nie będziemy korzystać z metodyki Scrap (ang. złom).

W przytoczonym przykładzie zdanie większości zostało potraktowane za pewnik. Co prawda często większość ma rację, a nawet jak nie ma racji, to duża społeczność zwiększa szanse na znalezienie fachowej pomocy. Ale nie jest to reguła – czasami większość może się mylić (przekonujemy się o tym mniej więcej co 4 lata).

Poza tym ciężko pisać system operacyjny dla programatora pralek w wykorzystywanym przez większość środowisku do tworzenia aplikacji okienkowych. Należy zawsze brać pod uwagę wszystkie aspekty danego problemu i przeanalizować racjonalne argumenty jakie padają w dyskusji.

Źródło destrukcji

Oprócz opisanych sposobów istnieją też inne – mniej lub bardziej złośliwe. Wyszydzanie pomysłu, zbaczanie z tematu, użycie potoku niezrozumiałych wyrazów, przeinaczanie słów rozmówcy… można by wymieniać bez końca. Jednak najważniejsza jest przyczyna praktykowania nieuczciwej dyskusji – niechęć do zmiany swoich przekonań za wszelką cenę.

Nie ważne czym spowodowana – strachem przed unaocznieniem braku kompetencji w danej dziedzinie, niechęcią do zmiany przyzwyczajeń, lenistwem – obrona jedynie słusznej tezy jest najbardziej destrukcyjną siłą w programowaniu. Informatyka to nie matematyka – wymyślone ponad 2000 lat temu twierdzenia matematyczne są wciąż aktualne i nie przestaną być ważne nigdy. W informatyce rozwiązania sprzed 10 lat są nieaktualne – dziesięcioletni sprzęt nie obsłuży większości dzisiejszych programów, zabezpieczenia zostały złamane, interfejs użytkownika jest już niewygodny, języki programowania uległy ewolucji lub przeszły do lamusa.

Kiedyś autorytety mówiły, że 640 kB pamięci wystarczy ludziom do końca świata. Kiedyś większość ludzi programowała w języku COBOL. Kiedyś wyśmiewano takie „nowinki” jak programowanie obiektowe, interfejs użytkownika wykorzystujący myszkę, metody sztucznej inteligencji czy ogólny dostęp do sieci Internet. Kiedyś ludzie uczący się nowych języków i technik programowania nie byli traktowani poważnie.

Nie traktujmy poważnie ludzi stosujących metody erystyczne w dyskusji. Nie postępujmy tak jak oni. Pluralizm, innowacja, niestandardowe rozwiązania – to siła napędowa rozwoju i przyczynek do lepszej implementacji programu.

Napisz Komentarz

*