Tym razem dobrym wstępem będzie rekomendacja informatyki, która jest dyscypliną mającą jeszcze jedną zaletę (oprócz tych, o których dobrze wiecie) - czasem pozwala lepiej zrozumieć zjawiska niż fizyka i matematyka. "Jak to, przecież to niemożliwe!" - zawołacie - "fizyka posiada najgłębsze rozumienie, a matematyka daje najbardziej szczegółowe rozumienie - więc czego im razem jeszcze brakuje?". Zaraz się przekonacie, że informatyka ma coś, czego brakuje fizyce i matematyce. To rzecz bardzo prosta - informatyka daje dane wejściowe, które mogą być wyssane z palca... i przy okazji obnaża arbitralność niektórych danych, przyjmowanych przez naukę.
W informatyce dokonał się ogromny postęp w czasach moje długiej kariery zawodowej. Kiedy zaczynałem pracę w tym zawodzie, nikt nie rozumiał różnicy między incydentem a problemem (błędem). Nawet potoczne zwroty, takie jak "wyskoczył błąd", pokazują, że 30 lat temu nie było nawet intuicji, pozwalającej odróżnić incydenty od problemów. Pamiętam żmudne i nieskuteczne negocjacje, jakie zawsze toczyły się w obszarze poprawiania błędów. Funkcjonowały formularze w rodzaju "Raport Błędu" i nikt nie znał recepty, co robić z takimi zgłoszeniami. Negocjacje i zwyczajne kłótnie między testerami a programistami, między odbiorcą a dostawcą oprogramowania ciągnęły się w nieskończoność. Każda organizacja IT miała własną klasyfikację błędów i każda taka klasyfikacja była, z dzisiejszej perspektywy, ewidentnie błędna i głupia.
Olśnienie przyszło z chwilą, kiedy zrozumieliśmy, że incydent to coś zupełnie innego niż problem (błąd). Dzisiaj oczywiście rozumiemy doskonale, że "wyskoczenie błędu" jest incydentem, a nie problemem. Dzisiaj informatycy przetwarzają informacje o incydentach w sposób oczywisty - zgodny z najlepszymi praktykami. Dzisiaj nie negocjuje się takich rzeczy - wszyscy wiedzą, jak klasyfikować zgłoszenia incydentu i jak nimi zarządzać...
... i jak przejść do naprawiania błędów... i czy w ogóle warto naprawiać błąd. Te zagadnienia też nie wywołują kontrowersji, gdyż stosujemy sprawdzone najlepsze praktyki zarządzania problemami. Kluczową praktyką jest uznanie przyczyny incydentów za problem. To jest jeden z największych darów, jakie informatyka dała światu - zrozumienie, kiedy incydenty stają się problemem, a kiedy można je: olewać, omijać, obchodzić z daleka, zamykać oczy, udawać, że się ich nie widzi... - Jedno z tych słów informatycy wybrali i wciągnęli do swojego żargonu zawodowego, ale to chyba za łatwa by była zagadka, więc od razu napiszę. Stosujemy w żargonie IT słowo "obejście".
W języku potocznym to słowo znaczy troszkę mniej niż w IT - kojarzy się bowiem z jakimś dodatkowym kosztem, np. w terenie "obejście" kojarzy się z nadłożeniem drogi. Natomiast w IT "obejście" może też oznaczać "olewkę". Jeżeli zgłosisz, że błąd ci wyskoczył, to możesz dostać odpowiedź: "kliknij lub naciśnij cokolwiek, a komunikat zniknie".
Oczywiście nie oznacza to, że w IT wszystko jest łatwe i oczywiste. Jedną z trudności jest oszacowanie kosztów związanych z obejściami i porównanie tych kosztów z szacowanym kosztem analizy problemu, znalezienia i poprawieniu błędu. Czasem od razu widać, że koszt nawet miliona obejść nie dorówna kosztowi rozwiązania problemu, tak jak widać, że nie ma sensu budować kolejnego mostu, kiedy w pobliżu są mosty, na których nie ma korków - milion samochodów może nadłożyć kilka kilometrów, bo to o wiele tańsze niż zbudowanie jeszcze jednego mostu.
Czasem jednak jest trudno to oszacować - czasem jedni szacują, że w dłuższej perspektywie opłaca się, inni twierdzą, że nie warto (bo nie dożyjemy lub w ogóle przestaniemy używać mostów). Decyzja, aby ze zbioru incydentów wygenerować problem, nie zawsze ma charakter naukowo udowodniony - dobrze oszacowany i dobrze policzony. Bywa więc w życiu tak, że fizyka i matematyka nie potrafią dać odpowiedzi. A wtedy informatyka sama musi sobie poradzić.
Jak informatyka to robi? Tutaj doszliśmy do tytułowego pytania: incydent czy katastrofa? Ten dylemat, poprzez swoją prostotę (trywialność, jak mawiają matematycy) doskonale obrazuje siłę informatyki. Wróćmy na chwilę do początków naszych rozważań, czyli do idei "obchodzić incydenty". Pierwszym wnioskiem z tej idei jest coś, co wszyscy rozumieli nawet 30 lat temu: "nie zgłaszaj nikomu błędu, który wyskoczył po raz pierwszy" - fajny paradoks, obrazujący prymitywność tamtych czasów (jak czasy logiki przed Tarskim i Goedlem) - to jest paradoks, bo jeśli nie zgłosisz błędu, to nikt się nie dowie, że to nie jest pierwszy raz.
Dzisiaj oczywiście rozumiemy, że każdy incydent trzeba gdzieś zgłosić... chyba że masz pewność, że został on już wielokrotnie zgłoszony... Właściwe sformułowanie zasady logicznej brzmi więc: "nigdy nie rób problemu z pierwszego zgłoszenia incydentu"... Ale znamy też inną zasadę: "nigdy nie mów nigdy". I tu dochodzimy do pojęcia katastrofy. Jeżeli kwalifikujemy incydent, jako opis katastrofy, to od razu robimy z niego problem.
To jest właśnie najtrywialniejszy przykład przewagi informatyki nad pozostałymi naukami. Czasem nie musimy niczego udowadniać, nie musimy niczego liczyć - wystarczy uznać incydent za katastrofę i od razu przystąpić do rozwiązywania problemu.
Łatwo teraz mnożyć przykłady nietrywialne, gdy już rozumiemy, o co chodzi. Nauka często nie potrafi oszacować wartości (nie)pewnych zmiennych, a informatyk czasem po prostu musi podjąć decyzję: katastrofa czy nie - inaczej proces się zatrzyma. Zbieramy coraz więcej incydentów do kupy, próbujemy ważyć ten stos, ale waga nic nie pokazuje, bo nauka (ani ekonomia) nie potrafi oszacować wagi takiego incydentu... ale czasem widać, że nie można tak zbierać w nieskończoność... w pewnym momencie informatyk decyduje, że ten stos oznacza problem.
A na zakończenie podam zupełnie inny przykład tego, co informatyka wniosła do nauki. Jednym z takich wynalazków są symulacje. Wyobraźmy sobie, że nauka nie rozumie wpływu jakiejś zmiennej x i nie wie, jakie wartości przyjmuje ta zmienna. Matematyka nie dostaje więc żadnych danych do przeprowadzenia obliczeń (aby oszacować koszty). Informatycy wymyślili metodę polegającą na wstawianiu przypadkowych wartości do x i przetwarzaniu tych danych zgodnie z jakąś hipotezą. Wyniki tego przetwarzania czasem mogą przypominać jakąś rzeczywistość. Wtedy wstawiamy kolejne wartości już nie tak przypadkowo, jak na początku i czasem w końcu udaje się uzyskać wynik zgodny z rzeczywistością. Wtedy wartość x, dająca ten wynik, może naprowadzić naukowców na pomysł, jak rozumieć wpływ zmiennej x na rzeczywistość. Wtedy hipoteza podnosi swój status do rangi hipotezy możliwej.
Inne tematy w dziale Technologie