.st0{fill:#FFFFFF;}

Systemy, czyli problemy zbyt skomplikowane 

 15 lutego, 2019

Tomasz Dzierżek

W marcu zeszłego roku większość zegarów w europejskich mikrofalówkach miało sześć minut opóźnienia. To nie tylko ciekawostka, ale także świetny przykład na to, jakie konsekwencje mogą mieć działania w systemie, który jest zbyt duży i zbyt skomplikowany.

 

Wszystkiemu winne Bałkany?

Sieć elektryczna Europy kontynentalnej to obszar wzajemnie połączonych ze sobą sieci energetycznych w 24 państwach. Połączenie te jest fizyczne i zapewnia w miarę swobodny przepływ prądu we wszystkich kierunkach, co szczególnie przydaje się podczas kryzysów i awarii.

Jakie są ryzyka? Nie o wszystkich wiemy i o tym właśnie opowiada dzisiejsza historia.

Kraje należące do wspólnej sieci mają obowiązek utrzymywania balansu pomiędzy energią pobieraną i dostarczaną. Jeżeli nie są w stanie tego robić, podpisują umowy z sąsiadami, którzy zobowiązują się im w tym pomagać. Taką umowę miały między innymi Serbia i Kosowo. Niestety, w styczniu 2018 roku oba kraje przestały ze sobą rozmawiać, a co za tym idzie – wypełniać postanowienia umowy.

Od stycznia do początku marca zeszłego roku Kosowo pobrało 113 gigawatogodzin energii więcej niż dostarczyło. Wspólna sieć energetyczna jest przygotowana na takie okoliczności i te zapotrzebowanie rozłożyło się na wszystkie podłączone do niej kraje, czyli na prawie całą Europę.

Ale nie ma nic za darmo. Energia nie wzięła się znikąd. Konsekwencją była zmiana parametrów prądu przemiennego, a konkretniej jego częstotliwości. Zamiast dobrze nam znanych pięćdziesięciu Hertzów, prąd był trochę bardziej „leniwy”.

 

Jak działa zegar?

Zegary w urządzeniach domowych polegają na stałej dostawie prądu. Dobrze o tym wiemy, bo każda awaria zasilania powoduje żmudne ustawianie wszystkich urządzeń od nowa. Różnią się tym one od zegarków na rękę, które przy użyciu baterii i rezonatora kwarcowego lub sprężyny napędowej i balansu potrafią „same” pilnować odliczania czasu.

Urządzenia elektryczne, które z zasady są na stałe podłączone do gniazdka (mikrofalówki, lodówki) nie posiadają zegara, ale proste liczniki. Te zaś zakładają, że częstotliwość prądu przemiennego w gniazdku wynosi równe 50 Hz i po prostu liczą ile razy natężenie prądu zmieniło znak (z dodatniego na ujemny lub odwrotnie). Pięćdziesiąt zmian to jedna sekunda. Ta wiedza wystarcza, żeby precyzyjnie aktualizować raz ustawioną godzinę.

Z powodu wspomnianych nieporozumień na linii Serbia-Kosowo w całej Europie zabrakło prądu. Bez paniki – nie na tyle, aby urządzenia przestały działać, ale wystarczająco, żeby częstotliwość w gniazdkach przestała być równa dokładnie 50 Hz.

Ten drobny detal spowodował, że od stycznia do marca wszystkie zegary działające w oparciu o częstotliwość prądu przemiennego spóźniły się o 6 minut. Ot, taka zupełnie nieoczekiwana konsekwencja. I to zapewne jedna z wielu.

 

Jak skomplikowany jest nasz system?

Cała ta historia pięknie obrazuje, jak małe i teoretycznie niepowiązane z niczym zmiany mogą mieć wpływ na… wszystko. Cynefin framework mówi o takich systemach, że są niedeterministyczne i do tej kategorii należy większość rzeczy, z którymi mamy do czynienia w dzisiejszych czasach.

W przypadku chaotycznych systemów nie mamy pojęcia, jaka będzie ich reakcja na nasze działania. Nawet, jeśli te są dobrze przemyślane.

W XIX wieku do Nowej Zelandii sprowadzono króliki, które dostarczały mieszkańcom futer i pożywienia. Szybko okazało się, że na tej wyspie nie ma żadnych drapieżników, które mogłyby kontrolować ich populację. Króliki rozmnożyły się więc jak… króliki i szybko zaczęły doskwierać mieszkańcom oraz niszczyć pola. Stały się po prostu szkodnikami.

Sprytni ludzie postanowili sprowadzić fretki, które w Europie służyły do polowań na króliki. Z powodu trudności z transportem zwierząt, zaczęto hodować je na miejscu. Fretki, dzięki dostępności praktycznie nieograniczonego pożywienia, również zaczęły mnożyć się jak króliki i bardzo szybko zamiast jednego, Nowa Zelandia miała dwa problemy. Jeden z królikami, a drugi z fretkami. Żadnego z nich nie udało się rozwiązać do dzisiaj.

Nie potrafimy zapanować nad ekosystemami, nie umiemy przewidzieć pogody na dłużej niż kilka dni, nie podejrzewamy nawet, jakie konsekwencje będzie miał zwiększony pobór prądu w jednym z europejskich krajów.

A mimo to wiele osób uważa się za ekspertów od skomplikowanych systemów i proponuje rozwiązania na walkę z inflacją, zanieczyszczeniami czy zmianami klimatu. Nigdzie nie słychać głosu rozsądku, który powiedziałby „Nie mamy żadnego pojęcia, jakie będą skutki proponowanych działań. Może się okazać, że próbując rozwiązać jeden problem, spowodujemy wiele innych.”

 

Lepsze jest wrogiem dobrego

Co robić z wielkimi, skomplikowanymi systemami? Niezależnie od tego czy mówimy o systemach informatycznych, o procesach czy nawet o relacjach osobistych i biznesowych, musimy działać ostrożnie.

Jeżeli rozpatrywany przez nas system jest zbyt skomplikowany, to nie mamy szans na przewidzenie wszystkich konsekwencji. Zwykle lepiej jest polegać na jego zdolnościach do autoregulacji, niż na naszych „genialnych” pomysłach.

W informatyce jak zwykle mamy łatwiej, bo możemy zrobić kopie zapasowe i z wielu kiepskich pomysłów da się po prostu wycofać.

Jeżeli jakiś problem nie jest dla nas oczywisty, ani nie jesteśmy w stanie rozpoznać w nim determinizmu, to nie mamy szans na trafienie na idealne rozwiązanie. A skoro tak, to zawsze popełnimy jakieś błędy i zawsze spotkają nas negatywne konsekwencje. Jakie? Tego nie wiemy, chociaż musimy się w jakiś sposób na nie przygotować.

Wracamy tutaj po raz kolejny do teorii Czarnego łabędzia i próbujemy przygotować się na „nieznane nieznane”, czyli rzeczy o których nawet nie wiemy, że o nich nie wiemy. Musimy wziąć nasze najczarniejsze scenariusze i pomnożyć je przez sto albo i tysiąc. I dopiero wtedy zastanowić się nad tym, czy naprawdę chcemy grzebać w czymś, czego nie rozumiemy.

Nieocenioną pomocą w tego typu wyzwaniach będzie iteracyjne podejście do rozwiązywania problemów, a także metodyki agile. Ale nawet jeśli podzielimy skomplikowany system na proste elementy, to nie znaczy, że przestaną one być zależne. Prosta zmiana w jednym z nich może wywołać nieoczekiwane konsekwencje w pozostałych. Nie ma idealnego rozwiązania.

Czasami też możemy znaleźć gotowe rozwiązania na rynku albo odwołać się do wiedzy lokalnych ekspertów. W takim wypadku wystarczy tylko zaufać, że ktoś już za nas dany problem rozpracował.

Tylko czy na pewno przewidział wszystkie możliwe konsekwencje? Ach, to ryzyko…

Tomasz Dzierżek


23+ lat doświadczenia w IT, 15+ lat doświadczenia w Scrum i agile, PSM III (i inne), konsultant zwinnych procesów i zespołów, Agile Coach, trener

Your email address will not be published. Required fields are marked

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}