Principe: Omdenken
Omdenken is het principe dat een probleem vaak niet onoplosbaar is omdat de werkelijkheid onwerkbaar is. Het probleem zit meestal in het model: dat is te eenvoudig voor de complexiteit die je tegenkomt. Pas dan het model aan. Negeer niet de werkelijkheid.
Wereldbeeld en context
De werkelijkheid is bij uitstek complex. Zodra we erover redeneren of een model van maken, vereenvoudigen we die complexiteit noodgedwongen. Een model is nooit de werkelijkheid zelf, maar een hanteerbare versimpeling ervan. De statisticus George Box vatte dat samen in een uitspraak die inmiddels een vaste plek heeft in het denken over modellen: “All models are wrong, but some are useful” (Wikipedia (EN) – George E. P. Box). Een model is per definitie onjuist, omdat het vereenvoudigt. Dat maakt het niet waardeloos, zolang je je bewust blijft van wát het weglaat.
Dit is een concrete toepassing van Openheid op modellen en redeneringen over de werkelijkheid. Openheid stelt dat alle kennis voorlopig is, met Poppers fallibilisme als een van de bronnen. En dat andermans perspectief iets kan bevatten dat ik nog niet zie. Voor een model geldt exact dezelfde beperking. Het is een vereenvoudiging, dus per definitie onvolledig. De complexiteit die het weglaat is niet minder waar, alleen omdat het model erbuiten valt.
Een probleem voelt vaak niet onoplosbaar omdat de werkelijkheid zelf onwerkbaar is. Meestal is het model waarmee we erover redeneren te eenvoudig voor het deel van de werkelijkheid dat we tegenkomen. Dat besef verandert de vraag. Niet “hoe krijgen we deze lastige werkelijkheid weg”, maar “welk deel van mijn model houdt geen rekening met hoe complex de werkelijkheid werkelijk is”.
Dit sluit aan bij “omdenken” van Berthold Gunster. Hij maakt onderscheid tussen “ja, maar” en “ja, en” (hetkanWEL – interview met Berthold Gunster). Bij “ja, maar” houd je vast aan het model, en redeneer je de werkelijkheid die daar niet in past weg. Bij “ja, en” accepteer je de werkelijkheid eerst zoals ze is, en laat je het model (of de aanpak) daarna aansluiten. Met “ja, maar” pas je de werkelijkheid aan je model aan. Met “ja, en” pas je je model aan de werkelijkheid aan.
Het principe
Elk model of elke redenering over de werkelijkheid is een vereenvoudiging. De werkelijkheid zelf is complexer. Past een deel van die complexiteit niet in je model, en voelt het daardoor onoplosbaar aan? Pas dan niet de werkelijkheid aan om toch in het model te passen. Denk om: accepteer die complexiteit eerst onvoorwaardelijk als feit. Vraag daarna niet “hoe krijgen we dit weg”, maar “uitgaande van dit feit, wat kunnen we hier dan wél mee?”
Consequenties
Het principe zelf is universeel. Wat het betekent, verschilt per domein.
Algemeen / leven – bij een lastig probleem: onderzoek eerst of het écht onoplosbaar is, of dat je model van de situatie te simpel is voor de complexiteit die je tegenkomt. Wantrouw elke oplossing die een lastig deel van de werkelijkheid stilzwijgend negeert of wegdefinieert. Dat is vaak het signaal dat er iets valt om te denken. Een boom die ergens “in de weg” staat, is niet automatisch een obstakel dat weg moet. Onderzoek eerst of hij juist te gebruiken is, als schaduw, oriëntatiepunt of drager voor iets anders. Pas daarna kap je hem.
Architectuur / informatiemodellen – informatiemodellen zijn per definitie een vereenvoudiging van de werkelijkheid. Blijkt die werkelijkheid asynchroon te zijn? Dan is een model dat uitgaat van één consistente toestand op elk moment nooit waar. De asynchroniteit is dan het deel van de complexiteit dat het model niet meenam. Omgedacht: baseer het model niet op consistentie-in-de-tijd als norm, met afwijkingen als fout. Baseer het op asynchroniteit en afwijking als de norm zelf. Dat is precies de denkrichting achter event-driven architectuur, event sourcing en eventual consistency. Niet één waarheid op elk moment, maar een reeks gebeurtenissen door de tijd heen. Tijdelijke inconsistentie is dan geen bug, maar een verwacht kenmerk van het systeem. Zelfs conflicten hoeven niet voorkomen te worden. Ze kunnen by design opgelost worden, zoals bij CRDT’s (Conflict-free Replicated Data Types).