Złożoność to nie tylko fantazyjne określenie czegoś mylącego. Jest to specyficzna cecha obiektów składających się z wielu ruchomych części, które oglądane pojedynczo nie zachowują się tak, jak można by się spodziewać. Spójrz na las, miasto, a nawet na swój własny mózg. Są to systemy, w których proste interakcje pomiędzy węzłami dają początek nowym, nieprzewidywalnym właściwościom. Całość nie jest po prostu sumą swoich części. Zachowuje się zupełnie inaczej.

W mowie potocznej używamy słowa „skomplikowany”, aby opisać coś, co jest trudne, zagmatwane lub wyczerpujące do zrozumienia. Ale w nauce to pojęcie ma bardziej precyzyjne znaczenie. Opowiada o tym, jak z tego, co wydaje się chaosem, wyłania się porządek. Koncepcja ta przekracza granice różnych dyscyplin. Znajdziesz go w filozofii, naukach przyrodniczych, informatyce, ekonomii i socjologii. Cel jest zawsze ten sam: zrozumieć wzorce ukryte w hałasie.

Jak złożoność obliczeniowa mierzy trudność problemu

Kiedy informatycy mówią o złożoności, nie mają na myśli bałaganu w kodzie ani zagraconej architektury. Mówią o zasobach teoretycznych potrzebnych do rozwiązania problemu. W szczególności ile czasu i pamięci potrzebuje algorytm?

Im więcej zasobów pochłania zadanie, tym wyższy jest jego poziom trudności. Dziedzina ta, znana jako teoria złożoności obliczeniowej, umożliwia badaczom klasyfikację problemów. Pomaga określić, czy istnieje skuteczna metoda osiągnięcia rozwiązania lub czy problem jest z natury zbyt trudny do rozwiązania przy użyciu obecnej technologii. Jest to sposób na wyznaczenie granic możliwości komputerów.

Dlaczego złożoność organizacyjna zabija efektywność

Organizacje borykają się z innym rodzajem bólu głowy. Tutaj złożoność opisuje sieć zadań, procesów i relacji wymaganych do osiągnięcia wspólnych celów. Każdy element spełnia swoją rolę. Ludzie, działy, przepływ informacji – wszyscy muszą koordynować swoje działania.

Kiedy te wewnętrzne relacje stają się zbyt liczne lub trudne do zarządzania, złożoność organizacyjna dramatycznie wzrasta. Konstrukcja staje się ciężka. Komunikacja jest zakłócona. Podejmowanie decyzji spowalnia. Rezultatem jest zmniejszona wydajność. System utknie pod własnym ciężarem.

„Złożony system generuje nowe zachowanie poprzez interakcję, a nie po prostu poprzez dodanie większej liczby komponentów”.

Tutaj różnica jest istotna. Prosty system jest przewidywalny. Jeśli złamiesz część, rozumiesz przyczynę niepowodzenia. Złożony system ma właściwości wschodzące. Zmień jedną małą zmienną, a wynik może być całkowicie niezwiązany z Twoimi intencjami. Dlatego zarządzanie nimi wydaje się tak trudne, jak hodowanie kotów.

Granica między trudnym problemem a złożonym systemem jest niewyraźna, ale realna. Jeden wymaga wysiłku. Drugi wymaga adaptacji. Zrozumienie tej różnicy zmienia sposób, w jaki podchodzimy do wszystkiego, od pisania oprogramowania po prowadzenie firmy.

Próbujemy uprościć. Tworzymy diagramy. Opracowujemy przepływy pracy. Jednak wraz ze wzrostem liczby połączeń model zaczyna odbiegać od rzeczywistości. Mapa nie odpowiada już terytorium.

Jak zatem zarządzać czymś, co aktywnie opiera się prostym wyjaśnieniom? Tak naprawdę nie można tego zrobić. Nauczysz się po nim poruszać. Przyglądasz się uważnie wzorom. Akceptujesz fakt, że nieprzewidywalność jest cechą, a nie błędem.

Prawdziwym problemem nie jest rozwiązanie zagadki. Chodzi o to, żeby wiedzieć, kiedy przestać kontrolować poszczególne elementy, a zacząć obserwować formę, jaką tworzą.