Errare i tak dalej

https://xpil.eu/dtk

Uczą nas w szkołach, że "errare humanum est" i tak dalej. Omylność ludzka nie powinna nikogo dziwić. Wręcz przeciwnie: powinniśmy budować nasz świat opierając się na ludzkiej zawodności.

Nawiasem mówiąc mój ulubiony przykład literacki ukazujący ludzką niedoskonałość jako coś pozytywnego to "Rozprawa" Lema, z serii opowiadań o pilocie Pirxie. Ale o tym może kiedy indziej.

Niemniej jednak ciągle trafiam w życiu na perełki ukazujące jak naiwni potrafią być niektórzy zakładając, że błędy ludzkie da się wyeliminować.

Niedawno głośno było o pewnym świeżo upieczonym pracowniku pewnej dużej firmy, który pierwszego dnia pracy dostał zadanie skonfigurowania swojego biurkowego peceta do pracy w środowisku deweloperskim. A więc klasyczna sytuacja, w której mamy środowisko dla programistów (deweloperów), którzy piszą, poprawiają, testują i ulepszają kod, aby potem (najpewniej za pośrednictwem innego, bardziej uprzywilejowanego pracownika firmy) wysłać swój kod na serwer produkcyjny.

Nasz główny bohater dostał kilkustronicową instrukcję z mnóstwem informacji: jakie aplikacje zainstalować, co i jak w nich poustawiać i tak dalej. Wziął ją i zaczął mozolnie, krok po kroku konfigurować swój komputer.

W pewnym momencie dotarł do miejsca, w którym było opisane jak skonfigurować połączenia do baz danych. Stało tam napisane, żeby użyć ustawień z takiego to a takiego pliku, a także przykładowe dane już wpisane w instrukcji. No i tu się chłopak wziął i pomylił, i zamiast wpisać ip serwera, login i hasło z ww. pliku, przepisał przykładowe informacje wydrukowane w instrukcji.

Pół godziny później wszystko miał już poustawiane, zapuścił więc serię skryptów, które miały zainicjalizować jego lokalne środowisko deweloperskie. Rzeczy takie jak czyszczenie lokalnych folderów, usuwanie baz danych z lokalnego serwera, generowanie danych testowych i tak dalej. Wszystko poszło gładko.

Za to kilka chwil później rozpętał się chaos.

Okazało się bowiem, że w instrukcji jako "przykładowe" były podane namiary na serwer produkcyjny. Wraz z loginem i hasłem, tak.

Tym samym nasz sympatyczny koleżka właśnie skasował kilka Bardzo Ważnych Baz z produkcyjnego serwera.

Co więcej, okazało się, że firma miała dość luzackie podejście do kwestii wykonywania kopii zapasowych baz danych. A konkretnie używali oni do tego celu algorytmu Schrödingera: kopia zapasowa być może jest, ale czy na pewno, to się dopiero okaże przy próbie jej odtworzenia. I jak się nietrudno domysleć kopii zapasowych (takich działających) nie było.

Ponieważ facet był nie w ciemię bity, poziom stresu przekroczył u niego wszelkie dopuszczalne normy. Jednak aby zachować resztki twarzy zaoferował swoją pomoc. Nic konkretnego, po prostu napisał otwarcie do CTO, że owszem, pomylił się i użył danych z instrukcji zamiast z pliku konfiguracyjnego, i że oferuje ze swojej strony wszelką możliwą pomoc.

Efekt?

CTO zablokował wszystkie jego konta firmowe, kazał natychmiast opuścić firmę i nigdy nie wracać, a także zagroził poważnymi konsekwencjami prawnymi.

Wątek pojawił się na Reddit (oraz na kilku innych forach); w ciągu niecałych trzech dni rozlazł się na ponad cztery i pół tysiąca komentarzy. Większość internautów stanęła po stronie naszego nieszczęsnego bohatera.

Ewidentne błędy, jakich dopuściła się firma:

  • Umieszczenie w ogólnie dostępnej instrukcji loginu i hasła użytkownika z pełnymi uprawnieniami do produkcyjnego serwera.
  • Brak jakiegokolwiek zabezpieczenia w warstwie sieciowej między środowiskiem deweloperskim a produkcyjnym.
  • Brak porządnie przetestowanych kopii zapasowych środowiska produkcyjnego.
  • Zatrudnienie niekompetentnego człowieka na stanowisku CTO.

Oczywiście nasz główny bohater nie jest bez winy; popełnił błąd. Gdyby był bardziej uważny... Ale nie, jeżeli nie on, to prędzej czy później ten błąd popełniłby ktoś inny. Przecież taka instrukcja aż się prosi o ostrzegawczy strzał w potylicę.

Z tego wszystkiego najbardziej inspirująca jednak była dla mnie anegdota (być może nawet oparta na faktach; tego na 100% nie wiem) dotycząca bardzo podobnej sytuacji w innej dużej firmie: IBM.

Było to w czasach, kiedy IBM dopiero co dostało swoją nową nazwę (przedtem nazywali się CTR: Computing-Tabulating-Recording Company), okolice lat czterdziestych zeszłego stulecia. Szefujący wówczas firmie Tom Watson był prawdziwym rekinem businessu, udało mu się zwiększyć wartość firmy z "marnych" czterech milionów do prawie miliarda ówczesnych dolarów amerykańskich.

Przydarzyło się wtedy, że jeden ze świeżo upieczonych pracowników popełnił niewielki, ale daleko idący w skutkach błąd, przez który firma musiała zapłacić jednemu z klientów dziesięć milionów dolarów odszkodowania.

Bezpośredni przełożony nieszczęśnika został wezwany wraz ze swoim przestraszonym podwładnym do gabinetu Watsona będąc przekonanym, że gościa zwolnią a i jemu samemu się oberwie. Nowy też był świadom swojej sytuacji, więc mdlejącym głosem od razu na wejściu przyznał się do pomyłki oraz dodał, że absolutnie rozumie, dlaczego Watson zamierza go teraz zwolnić. Na co ten ostatni odpowiedział:

“Fire you? I just spent $10 million educating you.”

Prawdę powiedziawszy nie wiem, czy na miejscu Watsona potrafiłbym zachować się w ten sposób, jednak faktem jest, że taka postawa szefa dużej firmy zdecydowanie poprawiła jego wizerunek w oczach podwładnych, a świeżo upieczony pracownik nie tylko dostał drugą szansę, ale również nauczył się, aby na przyszłość bardziej uważać.

Bo człowiek jest omylny i należy o tym pamiętać zawsze i wszędzie.

https://xpil.eu/dtk

4 komentarze

  1. Bardzo ciekawe i pouczające. Mam jednak wrażenie, że istnieją ludzie, którzy gdzie się nie pojawią, tam sieją zniszczenie. Znam dwóch takich osobników, z których jeden już w pierwszym dniu stażu zmasakrował bardzo znany portal informacyjny, a drugi zablokował oczyszczalnie miejską. Oczywiście, stałej pracy tam nie dostali. A szkoda! Takich ludzi należy wyłapywać, dobrze nagradzać i testować na nich wszystko co się da, wcześniej czy później odkryją słabe miejsca.

    1. Oczywiście, też znam takich ludzi i też uważam, że mają oni całkiem sporą wartość, o ile tylko się ich odpowiednio umiejętnie wykorzysta (pojęcia takie jak “izolatka”, “łańcuch” czy “szlifierka kątowa” nasuwają się tu automatycznie).

      Niemniej jednak opowiedziana przeze mnie historia ma raczej pokazać radosną beztroskość (a może beztroską radosność?) niektórych dużych firm w kwestii zabezpieczeń systemów kluczowych do działania biznesu..

  2. Tę anegdotę słyszałem już w kilkudziesięciu wersjach, w każdej mi się podoba. Z IBM wcześniej nie słyszałem.
    Dodatkowo jest szansa, że taki pracownik, będzie najlepszym w firmie. Poza tym każdy, kto zajmuje się komputerami lub generalnie technicznymi rzeczami sam sobie sprezentował różne fajne kiksy – wieki temu napisałem program szyfrujący i deszyfrujący – zaszyfrowałem cały dysk z tymi programami ;] Wiedza kosztuje 😀 Sam nie będąc już świeżakiem w brażny – skasowałem coś swojemu szefowi w nowej pracy – nie wywalił mnie, a później powstał prosty system zapobiegający podobnym sytuacjom ;]

    A co do instrukcji – zawsze mnie bawi, jak się działowi IT wydaje, że potrafią napisać bulletproof instrukcję ;]

  3. A ja uwielbiam (sarkazm) instrukcje, które mówia ” a nastepnie skontaktuj sie z mRufa mRufczynska”, bo przesz ja w zyiu nie odejde i jako ten kapitan bede na statku do dna, albo ” a teraz zaloguj sie jako Gollum i dokonaj aktywacji a nastepnie otrzymane kody aktywacyne (które poszly na email Golluma) wprowadz do aplikacji.
    A juz najbardziej do lez mnie doprawdza kolega (tfu jego mac) z zespolu o roboczym imieniu Zaba – autor moze o nim czytales, moze nie – który uwielbial kiedys pasjami pisac insturkcje, nastepnie przez dekade do nich nie zagladal bo aktualizowac i poprawiac swojego dziela to juz on nie lubi, a soft byl na przyklad 13cie razy aktualizowny i raz zmigrowany i on te swoje instrukcje ufnemu czlowiekowi wrecza z duma i uprzedzeniami, po czym z pokerowa mina na zarzuty ze dal g*wno odpowiada, “no mozliwe, ze nikt tych instrukcji nie aktualizowal” i jest ciezko zdziwiony, ze nie pada mu czlowiek z zachwytu do stóp i nie kwili z wdziecznosci tylko parska na ten przyklad sarkazmem (czytaj ja).

    A swoja droga to sama tak mam ze przypadkiem trafiam w slabe punkty róznych rzeczy, ale testerem nie mam aambicji zostac 😉 wole unikac srodowisk produkcyjnych 😉

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.