Errare i tak dalej

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.


Liczba słów w tym wpisie: 950

Sprawdź też

Obsydianowy mędrzec

Systemy zarządzania wiedzą? Ściema jakaś, teraz wszystko jest w guglach, po co mi jakieś dodatkowe …

Siedem tygodni, czyli rzecz o szukaniu pracy w czasach zarazy

Blog mi ostatnio zwolnił do ślimaczego tempa. Trochę dlatego, że postanowiłem sobie zrobić przerwę od …

Zapisz się
Powiadom o
guest
4 komentarzy
Inline Feedbacks
Zobacz wszystkie komentarze
4
0
Zapraszam do skomentowania wpisu.x
()
x