Pogledao je kod koji nadzire brzinu turbine i — odlučio da ne dira ništa
Mladi softverski menadžer, koji se u tekstu krije iza pseudonima Sokrat, dobio je zadatak koji je na papiru delovao prozaično: da ode u elektranu i uredi sistem koji njegova firma pre toga nije propisno dokumentovala. Na lokaciji ga je sačekao stari CP/M računar povezan sa uređajem koji nadzire dozvoljenu brzinu turbine. Problem je bio što nije znao šta sistem tačno radi, kako je povezan sa ostatkom postrojenja ni kakve posledice može da izazove pogrešna izmena. Kada je otvorio program, zatekao je mnoštvo GOTO naredbi, direktnih pristupa I/O adresama, bitovskih operacija sa neobjašnjenim vrednostima, skoro bez komentara. U glavi mu se vrzmala scena u kojoj turbina podivlja, lopatice izleću iz kućišta i grad ostaje bez struje. Umesto da počne sa prepravkom koda, zatvorio je slučaj i ostavio sistem kakav jeste. Priču je mnogo godina kasnije anonimno ispričao The Registeru, koji je objavljuje u svojoj čitalačkoj rubrici On Call. Ne znamo koja je elektrana bila u pitanju, kakvu je tačno funkciju računar imao niti da li bi greška zaista izazvala najgore Sokratove slutnje. Ali njegova odluka je poenta ove priče: kod visokorizičnih sistema, neznanje nije poziv na improvizaciju.
IT kultura nagrađuje čoveka koji nešto popravi, ali mnogo ređe primećuje one koji su na vreme odlučili da odustanu jer nemaju dovoljno informacija. Kod stare infrastrukture problem nije samo ružan kod. Problem su izgubljeno znanje, nedokumentovane zavisnosti, nepoznato početno stanje i odsustvo sigurnog načina da se proveri šta će promena da napravi. U takvoj situaciji sposobnost da kažeš „ne diram dok ne razumem” nije ni kukavičluk ni lenjost. To je kontrola promene u njenom osnovnom obliku. Ponekad je najbolja intervencija ona koju si odbio da napraviš.
- Ne menjaj kritičan sistem dok ne znaš njegovu funkciju, zavisnosti, vlasnika i posledice otkaza
- Pre intervencije zabeleži postojeće stanje, konfiguraciju i način na koji možeš da potvrdiš da sistem posle promene radi isto ili bolje
- Obezbedi mogućnost povratka na prethodno stanje pre prve izmene, a ne tek kada nešto pođe naopako
- Ako nema dokumentacije, tretiraj njeno pravljenje kao deo posla, a ne kao administrativni dodatak koji može da sačeka
- Kod sistema čiji kvar utiče na fizičke procese traži testno okruženje, stručnjaka za sam proces i formalno odobrenje promene