Nov 28

Programmer blindness

Tag: Programowaniedooshek @ 12:08

Znacie na pewno termin “banner blindness” który określa rodzaj chwilowej ślepoty użytkownika na prezentowane mu bannery. Użytkownik podświadomie unika wzrokiem elementów mrugających lub też po prostu wyglądających jak bannery.

Ostatnio rozmawiając z programistami na temat problemu testowania aplikacji pisanych przez nich wpadłem na pomysł stworzenia terminu programmer blindness.

Wystawiając ostatnio wersję testową aplikacji jeden z programistów wrzucił również bazę danych wcześniej ściągniętą z serwera klienta z pomocą Jedynego Słusznego Narzędzia Do Bazy Danych ™ (czyt. PHPMyAdmin) któremu niestety czasami przestawi się kodowanie znaków (my używamy UTF8)

Efekt był taki, że teksty na stronie były poobcinane tudzież nie było polskich znaków w ogóle (zostały zjedzone przez pana PHPMyAdmina a raczej przez jego głupotę).

Błąd zdawałoby się do wykrycia na pierwszy rzut oka. Wystarczy wejść na stronę testowanej aplikacji (co też ów programista uczynił) i chwilę poklikać. Do wykrycia w około 5 sekund  po wejściu na stronę.

Okazało się jednak, że nie zauważył on żadnych nieprawidłowości. Człowiek ten niejedno testowanie ma za sobą - to doświadczony programista, dlatego też zacząłem się zastanawiać co mogło być przyczyną. Wydawało się, że nie zauważył tego oczywistego błędu ze względu na to, że zupełnie nieświadomie nie spodziewał się błędu w tym miejscu.

Moim zdaniem padł właśnie ofiarą syndromu programmer blindess.

Niedziałający formularz, SQL error, brak zdjęć po wykonaniu uploadu, niedziałające linki - to standardowe błędy które się zdarzają. One też są w pierwszej kolejności testowane. Rzeczy które wydają się oczywiste (oczywiście, że będą działały :) nie są niestety testowane. Na pierwszy rzut oka wydaje się, że to złe podejście programisty do testowania jest tego przyczyną, ale nie jest on młodziakiem który dopiero co zaczął programować.  To człowiek z doświadczeniem który niejeden kod w życiu zjadł ;)

Jak widać problem jest spory - programiści “omijają” wzrokiem zupełnie nieświadomie fragmenty którymi nie muszą się przejmować (bo w ich mniemaniu na pewno powinny działać poprawnie).

Niestety dla klienta taka sytuacja jest niedopuszczalna i powoduje, że nie sprawdza/testuje on aplikacji napotykając na taki np. problem braku polskich liter.

Rozwiązań problemu jest kilka a najłatwiejszym jest testowanie w parach - jedna osoba tworzy funkcjonalność lub też wystawia wersję testową a druga jest odpowiedzialna za sprawdzenie. Nie wymaga to aż tak dużej ilości czasu a powoduje, że błędów jest dużo mniej.

P.S. Happy End :) Nasz błąd na szczęście został wyłapany jeszcze w firmie właśnie dzięki testowaniu przez programistę-partnera.

4 Responses to “Programmer blindness”

  1. k00ba says:

    Ja sie z czyms podobny ostatnio tez spotkalem. Programista mial zrobic prosty form zakupu. No i zrobil ale zupelnie nie zauwzyl bledow ortograficznych i wciec pol. Jako ze ja tez robie duzo ortografow wiec tu nie bylo problemu ale dokladne poukladanie pol to zupelnie inna sprawa. Mysle, ze powodem takiego zrobienia bylo skupienie sie na najwazniejszych czesciach zadania. Wtedy cala reszta jest mniej wazna i poprostu pomijana. Niestety dla kienta takie bledy sa zawsze WIELKIE bo przeciez ON NAPISAL jak to ma wygladac :)

  2. Łukasz Indeka says:

    Zrobiłem dokładnie ten sam błąd używając również Jedynego Słusznego Narzędzia Do Bazy Danych ™ jakiś miesiąc temu. Wprawdzie problem dotyczył niemieckich umlautów, ale na to samo wychodzi. Zorientowałem się 2 dni później. :( Trochę mnie kosztowało odkręcenie tego, bo dane w międzyczasie zdołały już się mocno zmienić… Faktycznie, też szukałem innych błędów.

  3. michal says:

    hm…. to jedna z pierwszych rzeczy, której się nauczyłem na studiach :D:D
    zawsze najtrudniej zauważyć własne błędy
    pozdrawiam

  4. Jasio says:

    Też lubię MyAdmina i nie zauważyłem żeby mu kiedykolwiek “się przestawiło” kodowanie lub jakiekolwiek inne ustawienie bez wyraźnego polecenia. Niesprawdzenie domyślnych ustawień programu (gdy się uruchamia inną kopię niż wcześniej, z innego hosta, po backupie systemu itp.) to już inna sprawa: potwierdzenie prawa Murphy’ego “U źródeł każdego błędu przypisywanego komputerowi leżą min 2 błędy człowieka - z obwinianiem komputera włącznie”.

Leave a Reply