Ktoś posprząta

Można zamieść śmieci pod dywan, zakładając, że nikt tam nie zajrzy i sprawa nie wyjdzie na światło dzienne. Wychodząc z podobnego założenia, można nie malować ściany za meblami, bo przecież nikt tego fragmentu nie będzie widział. Niedoróbki będą utajnione, dopóki komuś nie przyjdzie do głowy zmiana aranżacji pomieszczenia.

Z podobnej natury problemami spotykamy się w różnych obszarach życia. Zarówno w sferze czysto materialnej, jak i tej bardziej abstrakcyjnej, wynikającej z twórczości umysłowej. U podstaw tego tkwi zazwyczaj niechlujstwo, brak wyobraźni bądź trywialne cięcie kosztów. Czy istnieje jakieś powinowactwo niedomalowania powierzchni ukrytej do niedopracowania przepisu ustawy? Z pozoru nie, ale gdy lepiej się przyjrzeć, można uznać, że niedoróbka ustawodawcza ma drugie dno, a jej celem było pozostawienie furtki, która umożliwia co zmyślniejszym prześlizgiwanie się przez nią i czerpanie zupełnie bezkarnie określonych z tego tytułu korzyści. Z innej strony patrząc, poziom komplikacji treści różnych ustaw jest tak duży, że nietrudno rzeczywiście o błąd wynikający z najzwyklejszego przeoczenia. Trudno zatem wyrokować, czy działanie było celowe, czy tylko przypadkowo uzyskano taki efekt. Całkiem podobnie rzecz ma się z oprogramowaniem. Nieszczelności czy pojawianie się błędów jest skutkiem nieprzewidzenia pewnych sytuacji, a częstokroć nawet powzięcia założenia, że dana sytuacja nigdy nie nastąpi. W żadnym przypadku nie można zakładać, że luka nie zostanie odkryta. Następuje to z reguły częściej i szybciej, niż by się wydawało, gdyż prawa Murphy’ego działają nieubłaganie.

Nie tak dawno dostosowywałem do potrzeb pewnej firmy darmowe oprogramowanie typu open source. Zdawać by się mogło, że powaga światowych instytucji używających owego software’u powinna potwierdzać odpowiednią jakość produktu. Jednakże, jak się okazało, zbyt wiele śmieci zamieciono w nim pod dywan i zbyt wiele niedomalowanych powierzchni starano się ukryć. Znalazłem sporo niezainicjowanych zmiennych, które użyte zostały m.in. do budowania dynamicznych zapytań SQL. Nie we wszystkich ścieżkach algorytmu przetwarzania otrzymywały one wartość, więc powodowały wynikające z tego wywrotki oprogramowania. Zastanawia mnie, dlaczego autorzy nie przyłożyli się do podstawowego przecież oczyszczenia kodu? Czyżby wychodzili z założenia, że skoro jest to otwarte oprogramowanie, to ktoś po nich posprząta?

Zobacz również:

Wydaje się, że jawność realizowanej pracy powinna obligować wręcz do tego, aby każdy wykonał swoją robotę rzetelnie i posprzątał po sobie. Jak widać, nie zawsze tak jest. Daje tu o sobie znać negatywny duch zbiorowej odpowiedzialności.


TOP 200