Niklas Luhmann, niemiecki socjolog (1927–1998), twierdził w „Systemach społecznych” (1984), że społeczeństwo składa się z komunikacji. Ludzie są niezbędni, ale znajdują się w jego otoczeniu. Moja hipoteza: codebase, w której pracuje wielu agentów, działa tak samo. Agenci są otoczeniem, a codebase składa się z tego, co między sobą wymieniają: commitów, pull requestów, findingów, testów, które nie przechodzą, fixów, review, spisanych decyzji. To soczewka i już zmienia sposób, w jaki buduję.
Trafiłem tam przez side quest. Robiłem brainstorming z ChatGPT o Paulu Watzlawicku i konstruktywizmie, a rozmowa zjechała na Luhmanna, od cybernetyki do teorii społeczeństwa. Im więcej czytałem, tym bardziej rozpoznawałem swoje repo.
Luhmann w pięciu ideach
- Społeczeństwo składa się z komunikacji. W „Systemach społecznych” komunikacja jest syntezą trzech selekcji: informacji, wypowiedzi i zrozumienia, łącznie z nieporozumieniem. Zrozumienie leży po stronie odbiorcy, więc nikt sam nie sprawi, że komunikacja zajdzie. To przeciwieństwo modelu Shannona, w którym wiadomość wędruje od nadawcy do odbiorcy.
- Autopoieza. Termin pochodzi z „De máquinas y seres vivos” (1972) chilijskich biologów Humberta Maturany i Francisca Vareli: system, który wytwarza elementy, z których się składa. Luhmann przenosi go z komórki na społeczeństwo. Jedna komunikacja wytwarza kolejne i tak system się reprodukuje.
- Świadomości i społeczeństwo to różne systemy. Myślenie i komunikowanie to różne operacje: bez świadomości nie ma komunikacji, ale społeczeństwo składa się wyłącznie z tej drugiej.
- Różnicowanie funkcjonalne. Każdy podsystem obserwuje świat przez własny kod binarny: nauka przez prawdę i fałsz, prawo przez legalne i nielegalne, gospodarka przez płacenie i niepłacenie. W „Die Realität der Massenmedien” (1995) media też stają się systemem, z kodem informacja i nie-informacja.
- Obserwacja drugiego rzędu. Luhmann bierze ją od Heinza von Foerstera i z „Laws of Form” (1969) George'a Spencera-Browna: obserwować znaczy wprowadzić rozróżnienie, a obserwator nie widzi rozróżnienia, którego używa. Żeby je zobaczyć, potrzebujesz kogoś, kto obserwuje, jak ty obserwujesz.
Agenci są otoczeniem. Codebase jest komunikacją.
Agenci przychodzą i odchodzą. Sesja się kończy, kontekst jest kompaktowany, model zmienia się z każdym release'em. Zostaje to, co zostawili tam, gdzie następny może to przeczytać. Błyskotliwe rozumowanie, które zostało w czacie, dla codebase nigdy się nie wydarzyło.
„Die Realität der Massenmedien” otwiera myśl, która co do słowa pasuje do agentów: wszystko, co wiemy o społeczeństwie i świecie, wiemy z mass mediów. Wszystko, co agent wie o codebase, wie z tego, co jest w niej zapisane. Nie ma innego kanału.
Dlatego oceniam agenta po tym, co zostawia: spisana decyzja, test, który nie przechodzi przed fixem i przechodzi po nim, PR, który mówi, co sprawdził, co zostaje otwarte i jak zrobić revert. To ta sama zasada, której używam w company brain: handoff jest skończony, kiedy odbiorca potrafi go przeczytać (tutaj). Luhmann powiedziałby, że komunikację dopełnia ten, kto ją rozumie.
Nie można się nie komunikować, nawet w repo
Paul Watzlawick z Janet Beavin i Donem Jacksonem napisał w 1967 roku „Pragmatics of Human Communication”, książkę szkoły z Palo Alto. Pierwszy z jej pięciu aksjomatów jest najczęściej cytowany: nie można się nie komunikować. Milczenie też coś mówi.
W projekcie badawczym tej jesieni suite testów skipowała się sama, kiedy silnik kontenerów był wyłączony, a run pokazywał zielony (historia). Nikt nie napisał „wszystko gra”. Powiedziało to milczenie. Stary TODO mówi „tu się robi tak”. Martwy plik mówi, że jest wciąż potrzebny. Następny agent czyta to wszystko i buduje na tym.
Dlatego sprzątanie to praca pierwszej kategorii. Wszystko, co zostaje w repo, jest wiadomością dla kogoś, kogo przy tym nie było.
Pozostałe cztery aksjomaty, czytane w repo
- Każda komunikacja ma treść i relację, a relacja mówi, jak czytać treść. W repo relacją jest status twierdzenia: hipoteza, propozycja, podjęta decyzja. Bez niego agent czyta hipotezę jak decyzję. Zapłaciliśmy za to w company brain (tutaj). W „Die erfundene Wirklichkeit” badanie Davida Rosenhana pokazuje skrajny przypadek: kiedy raz nadasz etykietę, każde późniejsze zachowanie jest czytane przez etykietę.
- Interpunkcja sekwencji. Każda strona dzieli tę samą wymianę na przyczynę i skutek po swojemu. W pętli review autor myśli, że odpowiada reviewerowi, reviewer myśli, że odpowiada na nowy bug autora, i każdy ma rację ze swojego miejsca. Dlatego żaden nie przestaje sam.
- Komunikacja cyfrowa i analogowa. Agenci czytają kod na dwa sposoby: co mówi i jaki ma kształt. Nazwy, struktura, plik obok. Kopiują kształt tak wiernie jak treść, więc jeden oczywisty sposób na każdą rzecz jest wart więcej niż jakakolwiek instrukcja.
- Interakcja symetryczna i komplementarna. Dwóch agentów z tym samym autorytetem dryfuje w symetryczną eskalację: każdy fix rodzi finding, każdy finding większy fix. Komplementarne role to zatrzymują: bot opisuje ryzyko, podpisuje człowiek (tutaj).
Każdy kontekst obserwuje przez własny kod
Różnicowanie funkcjonalne wyjaśnia mój poprzedni esej lepiej, niż ja to zrobiłem (multi-context). CI obserwuje zmianę przez zielony i czerwony. Review przez finding i brak findingu. Second brain, kiedy myślę o produkcie, przez powinno istnieć i nie powinno istnieć. Trzy systemy patrzą na tę samą zmianę przez trzy kody, tak jak nauka, prawo i gospodarka patrzą na to samo zdarzenie.
Agent z jednym kodem dobrze robi swoją robotę. Poproś jednego agenta, żeby zdecydował jednocześnie, czy kod jest poprawny i czy feature ma sens, a pomiesza dwa kody i zwykle jeden z nich przegra. Każdemu kontekstowi daję jedno pytanie i pozwalam odpowiedzieć jego własnym kodem.
Martwe pole widać tylko z zewnątrz
Model, który ponownie czyta własną pracę w tym samym kontekście, używa tych samych rozróżnień, które wyprodukowały błąd, więc widzi go słabo. Dlatego review zawsze zlecam modelowi z innej rodziny, w osobnym kontekście. To obserwacja drugiego rzędu: ktoś, kto patrzy, jak patrzył autor.
To ograniczenie dotyczy też mnie. Obserwuję przez własne rozróżnienia, a to, co odrzucam, wypada z mojego pola widzenia. Dlatego decyzje produktowe zapisuję razem z odrzuconymi alternatywami: ten, kto przyjdzie po mnie, zobaczy to, czego ja nie zobaczyłem.
System, który sam się reprodukuje, potrzebuje stopu
Finding rodzi fix, fix rodzi review, review kolejny finding. To autopoieza i dlatego codebase z wieloma agentami jedzie dalej, nawet kiedy nie patrzysz. Dlatego też pętla review, której nikt nie zatrzyma, wysysa ci weekly. System nie ma wewnętrznego powodu, żeby przestać się komunikować. Stop musi przyjść z zewnątrz: cap na roundy, po pierwszych tylko nowy diff, próg pewności.
Nie ma centrum, które widzi wszystko
Dla Luhmanna nowoczesne społeczeństwo nie ma centrum, które obserwuje i steruje resztą. Codebase z wieloma agentami też go nie ma. Orchestrator jest obserwatorem jak inni, z własnym martwym polem, a orchestrator, który musi wiedzieć wszystko, staje się wąskim gardłem (tutaj). System trzyma w kupie struktura, którą czyta każdy agent: typy, gate'y, które failują, spisane decyzje, jeden oczywisty sposób na każdą rzecz (tutaj).
Pierwszy second brain był z drewna
Luhmann przez dziesięciolecia pracował z archiwum około 90 000 fiszek, swoim Zettelkastenem. W 1981 roku, w „Kommunikation mit Zettelkästen”, opisał je jako partnera komunikacji: system, z którym się rozmawia, z wieloma cechami osobnej osoby, zdolny go zaskoczyć. Uniwersytet w Bielefeld, gdzie uczył od 1969 do 1993 roku, digitalizuje je teraz i publikuje online. Mój second brain to ta sama idea w Markdownie, z agentem, który czyta go w całości.
W poprzednim eseju second brain i repo wymieniają informację i nic więcej. Słowami Luhmanna to dwa operacyjnie zamknięte systemy w sprzężeniu strukturalnym: żaden nie wchodzi w operacje drugiego, każdy czyta to, co drugi wytwarza, i zamienia to na własną informację. To zamknięcie utrzymuje je w czystości.
Najmocniejszy zarzut: to tylko metafora
Być może. Jürgen Habermas spierał się z Luhmannem przez dziesięciolecia, zaczynając od książki, którą podpisali razem w 1971 roku, „Theorie der Gesellschaft oder Sozialtechnologie” (Teoria społeczeństwa czy technologia społeczna). Luhmann pytał, jakie procesy utrzymują system społeczny przy życiu. Habermas pytał, w jakich warunkach komunikacja pozostaje wolna od przymusu, i dla niego sprowadzenie jej do systemu pomijało ludzi. Tu ryzyko jest podobne, bo traktowanie ludzi jako „otoczenia” repo brzmi zimno.
W mojej pracy dzieje się odwrotnie. Agenci produkują komunikację szybciej, niż ktokolwiek może ją przeczytać linijka po linijce, a moja praca przesuwa się tam, gdzie system sam nie sięga: decydować, co powinno istnieć, jakiego kodu używa każdy kontekst, gdzie idą stopy. Ta soczewka jest warta zachowania, dopóki pomaga mi lepiej decydować. Na razie pomaga.
Od poniedziałku
- Oceniaj agenta po tym, co zostawia tam, gdzie czyta następny.
- Traktuj milczenie jak wiadomość: skipowane testy, stare TODO i martwe pliki są czytane.
- Daj każdemu kontekstowi jedno pytanie i jeden kod.
- Niech autora obserwuje inny model, w innym kontekście.
- Każdej pętli, która sama się reprodukuje, daj stop z zewnątrz.
- Rządź strukturą, którą czytają wszyscy, i zostaw orchestratorowi jego martwe pole.
- Zapisuj decyzje z odrzuconymi alternatywami.
Do przeczytania
- Niklas Luhmann, „Systemy społeczne. Zarys ogólnej teorii”, Nomos, Kraków, 2007, tłum. Michał Kaczmarczyk (oryg. „Soziale Systeme”, Suhrkamp, 1984). Teoria komunikacji i autopoiezy społecznej.
- Niklas Luhmann, „Die Realität der Massenmedien”, 1995 (wyd. ang. „The Reality of the Mass Media”, Stanford University Press, 2000). Krótki pierwszy Luhmann.
- Niklas Luhmann, „Kommunikation mit Zettelkästen. Ein Erfahrungsbericht”, 1981. Kilka stron o archiwum fiszek jako partnerze komunikacji; angielskie tłumaczenia krążą w sieci.
- Jürgen Habermas i Niklas Luhmann, „Theorie der Gesellschaft oder Sozialtechnologie”, Suhrkamp, 1971. Spór.
- Humberto Maturana i Francisco Varela, „Autopoiesis and Cognition”, Reidel, 1980 (oryg. hiszp. 1972).
- Paul Watzlawick, Janet Beavin i Don Jackson, „Pragmatics of Human Communication”, Norton, 1967. Pięć aksjomatów.
- Paul Watzlawick (red.), „Die erfundene Wirklichkeit”, Piper, 1981 (wyd. ang. „The Invented Reality”, Norton, 1984). Von Foerster, von Glasersfeld, Varela, Rosenhan.
// to hipoteza. jeśli pęknie w prawdziwym repo, przepiszę ją tutaj.