Elementarz cybernetyka społecznego: system

Poprzedni artykuł na moim blogu dotyczył wprowadzenia do tematu cybernetyki społecznej. Jeśli go nie czytałeś, to zachęcam do zapoznania się z nim tutaj (link). Kolejne artykuły będą powiązane ze sobą tematycznie przez najbliższy czas. Cybernetyka jest głównym tematem rozważań na moim blogu. Zapraszam do obserwowania i udzielania się.

Lepsze jutro

Wcześniej nie wspominałem, dlaczego chcę się dzielić wiedzą o cybernetyce. Boli mnie, gdy patrzę jak nasze społeczeństwo rozpada się na naszych oczach. W większości żyją od pierwszego do pierwszego. Politycy i biznesmeni zajmują się zdobywaniem coraz większej władzy, zamiast podejmowaniem słusznych, opartych o badania decyzji korzystnych dla ogółu społeczeństwa.

"Demokracja" w jakiej żyjemy, nie jest właściwą demokracją, zawiodła ona moje oczekiwania.

Wiele systemów rządów zostało wypróbowanych i wiele będzie wypróbowanych w tym świecie grzechu i niedoli. Nikt nie udaje, że demokracja jest doskonała lub wszechwiedząca. W rzeczywistości stwierdzić trzeba, że demokracja jest najgorszą formą rządu, jeśli nie liczyć wszystkich innych form, których próbowano od czasu do czasu. Źródło: Winston Churchill, przemówienie w Izbie Gmin, 11 listopada 1947

Demokracja parlamentarna mająca w założeniach, że wybieramy raz na X lat swoich przedstawicieli promuje osoby, które myślą i działają krótkoterminowo, celem ich jest wygranie wyborów za wszelką cenę. W efekcie rośnie biurokracja, nepotyzm, afery idą za aferami, decyzje polityczne nie są konsultowane, brak transparentności, gospodarka jest sztucznie stymulowana, innowacyjność jest tłumiona, nie ma skutecznych mechanizmów kontroli polityków.

Sztywny system prawa, cementuje szkodliwe mechanizmy. Jest on tworzony pod konkretne lobbujące grupy, więc wygrywa kto więcej zaoferuje.

System edukacji zabija kreatywność, poczucie pewności siebie, tworzy on jedynie posłusznych pracowników fabryk i korporacji. Został wykreowany naród, który nie widzi dalej niż pęto kiełbasy.

Celem życia jest praca, która ma zapewniać możliwość, aby kupować więcej i napędzać koło gospodarcze. W rezultacie człowiek jest wrzucany w szczurzy wyścig, którego uczestnicy nawzajem się zagryzają.

W ten sposób nie wyeliminujemy największych bolączek ludzkiej cywilizacji takich jak: bieda, nadmierna eksploatacja zasobów naturalnych, wojny, konsumcjonizm, globalne ocieplenie, choroby XXI wieku - depresja itp.

Wierzę, że przez edukację jesteśmy w stanie przebudować nasze społeczeństwo, nasz wspólny polski dom na taki jaki potrzebujemy. Nie szukam rewolucji, bo one się nigdy nie sprawdzały. Jej dzieci się nawzajem zjadały, głowy leciały, lała się krew, jej postulaty nie były spełniane. To co chcę, to zmiany. Ewolucji ku lepszemu. Lepsze, oznacza będące w zgodzie z wyznawanymi wartościami i z interesem społecznym.

To, czego potrzebujemy to nowe elity. Rozumujące w kategoriach systemowych, rozumiejących złożone relacje pomiędzy gospodarkami i budujących ją ludzi.

Poprzez nowej jakości liderów jesteśmy w stanie osiągnąć więcej jako ludzkość. Każde społeczeństwo jest tak silne jak jego liderzy.

Poprzez swój blog i regularne spotkania, chcę stworzyć społeczność zainteresowaną budowaniem lepszego jutra. Cybernetyka społeczna dostarcza narzędzi poznawczych, aby to osiągnąć. Nie opieramy się o siłowe rozwiązania, a o naukowe podejście do człowieka i społeczeństwa.

Czym jest system?

Tradycyjne nauki jak matematyka czy fizyka nauczyły nas patrzeć na zjawiska jako continuum - ciągłe procesy:

  • Obserwując spadający deszcz, obserwujemy sumę przyczyn stanów pośrednich jak: stan płynny w zbiorniku wodnym, parowanie, kondensowanie w kropelki wody, a następnie opadające krople wody.
  • Samochód jadący z punktu A do punktu Z, przejeżdza przez punkty pośrednie.
  • Termometr zanurzony w garnku z wodą stojący na gazie będzie wskazywać kolejne coraz wyższe temperatury, aż osiągnie maksymalną wynikającą z właściwości cieczy, praw termodynamiki.

W literaturze ta perspektywa nazywa się podejściem mechanistycznym - złożone zachowania można zredukować do podstawowych procesów fizycznych jak zmiana położenia, prędkości, stanu skupienia itd.

To podejście działa świetnie przy rozwiązywaniu problemów technicznych. Ogromnie się przyczyniło do postępu naukowego i przemysłowego w historii ludzkości.

Jednak jest nieprzydatne w problemach społecznych.

Wraz z rozwojem techniki, urządzenia zaczęły być coraz bardziej i bardziej złożone. Pojawiła się potrzeba wyodrębniania z nich części-modułów ze względu na ich zadania i wzajemne powiązania, niezależnie, czy ta część jest śrubką, czy wielkim tankowcem.

Cybernetyka z dzielenia rzeczywistości uczyniła metodę naukową. Okazała się ona przydatna do rozwiązywania problemów w dowolnej skali, bez względu na to, z czego są złożone.

Mogą to być maszyny, systemy informatyczne, organizmy żywe, społeczności.

W trakcie opracowywania założeń cybernetyki pojawiła się potrzeba stworzenia aparatu pojęciowego na określenie czegoś, co składa się z coraz mniejszych elementów, powiązanych ze sobą wieloma zależnościami. Nadano temu nazwę "system" jako zbiór elementów i zachodzących między nimi relacji.

System to najważniejsze i podstawowe pojęcia cybernetyczne, z tego powodu można określić cybernetykę jako naukę o zachowaniu się systemów. Sama cybernetyka zajmuje się rodzajami oddziaływań, a nie rodzajami tworzywa z jakich są zbudowane. Za jej pomocą można badać i opisywać oddziaływania między ludźmi i narodami, ale nie zajmuje się samym człowiekiem - są od tego biologia, medycyna, psychologia itd. Analogicznie mechatronika techniczna nie zajmuje się stalą z jakiej jest zrobiona karoseria, a tym jak działają komponenty samochodu ze sobą. Zbiór relacji określa się terminem struktury systemu.

System, składa się z mniejszych systemów, nazywa się je podsystemami. Ciało człowieka posiada organy, które same wykonują funkcje i składają się z jeszcze mniejszych części, jak różnego rodzaju tkanki, które są zespołami komórek, a te dalej są małymi fabryczkami. System może być elementem jeszcze większych systemów, które określa się jako nadsystem. Rodzina wchodzi w skład narodu, ten staje się państwem, należącym do unii europejskiej/NATO, będącym na planecie Ziemia itd.

O tym jak duży, czy mały fragment rzeczywistości chcemy traktować jako system podejmujemy w oparciu o to, jaki chcemy rozwiązać problem np. nie wylicza się składki ZUS w oparciu o komórki wątroby Janusza z Katowic, a bierze się pod uwagę społeczność polaków i gospodarkę.

Gdy wydziela się system z rzeczywistości nie można zapomnieć o tym, że on także oddziałuje z innymi systemami w sposób energetyczny czy informacyjny. Wtedy bada się wydzielony system, a zaś reszta rzeczywistości jest określana jako otoczenie.

Schematyczne oznaczanie systemu na podstawie "Cybernetyka i Charakter"

Schematyczne oznaczanie systemu na podstawie "Cybernetyka i Charakter"

Oddziaływanie otoczenia na system nazywa się oddziaływaniem wejściowym, a miejsce oddziaływania to wejście. Analogicznie oddziaływanie systemu na otoczenie nazywa się oddziaływaniem wyjściowym, a miejsce nazywa się wyjściem.

Aby móc skutecznie posługiwać się metodą systemową w celu rozwiązania problemu -powinieneś spełnić poniższe założenia:

  • System powinien być dobrze wydzielony, szczególnie jego granice z otoczeniem.
  • Określenie systemu nie może zmieniać się w toku rozumowania.
  • Systemy powinny być rozłączne, co oznacza, że nie może być kilka elementów należących do kilku systemów jednocześnie.
  • Podział powinien być zupełny, nie powinno być elementów nie należącego do żadnego z jego podsystemów.

Metoda systemowa

Korzyści używania metody systemowej

  • Ogranicza dowolność interpretacyjną w trakcie badań i wyciągania wniosków. Istnieje ona tylko na początku przy stawianiu założeń struktury systemów, podsystemów, nadsystemów.
  • Nadaje się świetnie do analizy systemów wielkich - funkcjonowania organizmów żywych, organizacji, miast, społeczeństw.
  • W odróżnieniu od metod teoretycznych - nie opiera się na założeniu ciągłości zjawisk. W takich przypadkach jest skuteczna analiza procesów jednolitych, natomiast nie nadaje sie do analizy problemów złożonych, bo wtedy wymagane są liczne założenia upraszczające, przez co błąd wyników, nie odzwierciedla skutecznie rzeczywistości.
  • Przy metodzie empirycznej wymagane jest zebranie ogromu danych statystycznych, gdyż tego wymagają skomplikowane procesy w systemach. Co znacznie zwiększa koszta takich badań i wprowadza trudności z ich interpretacją, znalezieniem interesujących nas zjawisk.
  • Używanie schematów ułatwia zrozumienie, wyszukanie wszelkich możliwych procesów interakcji, które by można była łatwo pominąć w innych metodach badawczych.

Przykład analizy pod kątem produktywności

Wyobraź sobie, że jesteś właścicielem startupu. Pracujecie nad super innowacyjną aplikacją, ale macie już duże opóźnienia, kończą się środki. Inwestor jest zły i powiedział, że nie da już więcej. Musisz więc jak najszybciej wypuścić działająca aplikację, aby zebrać feedback i zacząć zarabiać. Nie masz budżetu Sasina na przepalenie milionów, a jedynie zaskórniaki spod materaca.

Przeanalizujmy okoliczności. Mamy 3 obiekty, w rzeczywistości elementów będzie więcej, ale dla potrzeb ćwiczeniowych uprośćmy.

Te 3 główne elementy to:

  1. Produkt IT - aplikacja wraz z kodem, infrastrukturą, architekturą
  2. Programista Andrzej - człowiek od wszystkiego, taka inżynieryjna złota rączka
  3. Kierownik projektu - czyli ty

Czy moglibyśmy dodać np. żonę kierownika czy też informację, że kierownik też jest programistą i lubi popracować w kodzie? Oczywiście, że tak, ale dodanie kolejnych elementów do układanki, szybko zwiększy liczbę potencjalnych okoliczności.

Wybór elementów systemu należy do osoby analizującej i ona musi je wyłuskać, aby móc przeprowadzić proces poznawczy. Na potrzeby ćwiczenia uprościłem przypadek.

Szukając potencjalnych rozwiązań naszego problemu bierzemy 7 wzajemnych oddziaływań:

  1. Jak otoczenie wpływa na samą platformę techniczną (aplikacja, bazy danych, infrastruktura, repozytoria kodu itd.)
    • Wybór operatora chmury wymusza określone rozwiązania techniczne tzw. vendor locking. Bez poniesienia kosztów, zmiana vendora jest czasem niemożliwa, wiec się od niego uzależniamy. Operator zmieniając cennik może znacznie zwiększyć czy zmniejszyć koszta operacyjne twojego startupu. Także nie masz pełnej kontroli nad serwerami.
    • baza kodu - serwer na którym stoi repozytorium może wylecieć w powietrze
    • Zaciągany dług technologiczny podczas tworzenia aplikacji w postaci nieprzemyślanych decyzji architektonicznych, braku dokumentacji, testów może powodować coraz większe utrudnienia w rozwoju, wymusza korzystanie z kolejnych hacków, co i tak zwiększa koszty utrzymania kodu. Szybkim rozwiązaniem jest zorganizowanie raz na jakiś czas czasu na poprawienie aplikacji, wyczyszczenie, uproszczenie kodu.
    • Podejmując decyzję o wykorzystaniu technologii jesteśmy skazani na jego producentów i społeczność w szukaniu rozwiązań. Co w przypadku nowych i niesprawdzonych projektów może skutkować znajdowaniem błędów, na które nie ma jeszcze odpowiedzi. Stack overflow mówi "nic tu nie ma". Słyszałem o przypadku popularnej biblioteki, której autor postanowił rzucić programowanie, zostawił projekt i poszedł do wojska.
    • Serwery to fizyczny sprzęt. Co jeśli padną: wystąpił pożar, zostały zalane, wystąpił niespodziany błąd, ktoś się włamał i wyczyścił wszystko itd. ?
  2. Jak programista wpływa na produkt?
    • Wybór architektury aplikacji (sposób działania) do wymagań biznesowych jest bardzo ważny. Zły wybór rozwiązania może uniemożliwić dalszy rozwój lub powodować opóźnienia. Odpowiednie wybory będą wspierać rozwój aplikacji. Ciekawostka: średnio co ok 5-7 lat produkty IT są przepisywane na nowo, aby sprostać zmieniających się wymaganiom biznesowym i trendom na rynku.
    • Programista pisząc testy może znacznie ułatwić dalszy jej rozwój, bo nie będzie wiadomo czy wprowadzenie kolejnej zmiany nie zepsuje innych funkcjonalności. Także brak testów będzie wprowadzać lęk przed "zepsuciem" aplikacji podczas refactoringu (przepisywania kodu), pojawią się regresje błędów - wrócą błędy które zostały poprawione wcześniej.
    • Zmęczony, wypalony zawodowo programista nie przewidzi potencjalnych problemów technicznych, nie sprawdzi dokładnie swojego kodu, przeoczy błędy, co spowoduje kolejne opóźnienia.
  3. Jak produkt wpływa na programistę?
    • Znudzenie projektem, frustracja powodują szybsze wypalenie się programisty i może to spowodować jego odejście z firmy, jego praca wraz z czasem będzie coraz mniej wydajna.
    • Nowo przydzielony członek zespołu potrzebuje czasu i energii na zrozumienie działania ekosystemu aplikacji.
    • Wybór użytych technologii wymusza określonego rodzaju sposób pracy. Także potrzebny jest czas, aby móc produktywnie z nimi pracować.
  4. Jak otoczenie wpływa na programistę?
    • Stan psychofizyczny wpływa na jego produktywność, co się przekłada na postęp prac.
    • Zdarzenia losowe jak wypadek/choroba/spalenie mieszkania itd. wpłynie na niego i obecność w projekcie. Posiadając jednego specjalistę bardzo się narażamy na skutki tego typu zdarzeń
    • Ergonomia stanowiska pracy wpłynie na jego produktywność.
  5. Jak kierownik wpływa na programistę?
    • Może dostarczyć mu wszystkich, dobrze określonych wymagań biznesowych.
    • Zmieniając sprzęt programisty może przyśpieszyć tempo prac.
    • Rozmawiając z nim może uzyskać informacje o potencjalnych przeszkodach.
    • Wpływa na motywację, sposób pracy, kolejność wykonywanych zadań programisty.
    • Przeniesie problemy z domu do pracy, może chcieć się wyładować na współpracownikach, co wpłynie na ich motywację do pracy.
    • Kierownik niesłuchający zespołu, może zignorować ostrzeżenia, jak podczas testów systemów chłodzenia reaktora w Czarnobylu, co skończyło się wielką katastrofą.
  6. Jak programista wpływa na kierownika?
    • Dostarcza informacji o swoich potrzebach emocjonalnych np. chęć uzyskania feedbacku, docenienia, technicznych np. potrzeby mocniejszego sprzętu, dodatkowych serwerów, licencji, brakujących specyfikacji biznesowych
    • Programista wpływa na kierownika i podejmowane przez niego decyzje, poprzez jakie informacje mu dostarcza.
  7. Jak otoczenie wpływa na kierownika?
    • Problemy ze snem wpłyną na procesy poznawcze i decyzyjne.
    • Może się źle odżywiać, przez co stopniowo będzie coraz słabszy fizycznie, co odbije się także na jego psychice.
    • Może mieć problemy w domu, przez co przenosić je na atmosferę w firmie, zdolność koncentracji.
    • Może dostać lepszą ofertę pracy.

Jak widać, uzyskałem sporo możliwych okoliczności wpływających na wyniki tworzenia aplikacji. Można ich wypisać jeszcze więcej. Co byś dodał?

Należałoby jeszcze sporządzić dokładniejszą analizę jak duży ma wpływ każdy czynnik, ile kosztuje wprowadzenie zmian, jak duże niesie ryzyka i wtedy wybrać optymalne rozwiązanie.

Artykuł powstał w oparciu o "Cybernetyka i Charakter"- Marian Mazur, Warszawa 1999

Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments