Deductief denken is een manier van zien, niet alleen van bouwen
Waarom deductief denken verder gaat dan code schrijven. Het is een manier van kijken naar de wereld, naar mensen en naar problemen die anderen niet eens herkennen.
Er is een misverstand dat ik steeds tegekom. Wanneer ik over deductief denken praat, denken mensen dat ik het heb over een manier van programmeren. Een implementatiestijl. Alsof het een keuze is die je maakt wanneer je achter je toetsenbord gaat zitten, en die je weer uitzet wanneer je de laptop dichtklapt.
Maar zo werkt het niet. Niet bij mij, en ik denk niet bij wie dan ook die het echt begrepen heeft. Deductief denken is geen techniek. Het is een manier van zien.
Het begint niet bij code
Deductief denken begint lang voordat er een regel code is geschreven. Het begint bij de vraag die niemand stelt. Bij het gesprek dat iedereen als afgerond beschouwt, maar waar ik iets voel kraken. Niet omdat ik moeilijk wil doen, maar omdat mijn brein niet stopt bij het oppervlak.
Iemand zegt: "We gaan het zo doen." En de rest knikt. Maar ik hoor iets anders. Ik hoor de aanname erachter. De stille voorwaarde die niemand heeft uitgesproken. De logische stap die is overgeslagen. En dan begint het. Niet een gevoel van onrust, maar een soort helderheid. Alsof ik door de woorden heen kijk en de structuur eronder zie.
Dat is deductief denken. Niet het toepassen van regels op code. Het is het zien van regels waar anderen alleen uitkomsten zien.
En dat heeft alles te maken met McDD. Mijn brein filtert niet op dezelfde manier als bij de meeste mensen. Waar anderen automatisch informatie wegstrepen die niet direct relevant lijkt, neemt mijn hoofd alles mee. Elke nuance, elke toon, elke kleine inconsequentie in wat iemand zegt. Dat is overweldigend, ja. Maar het betekent ook dat ik patronen en structuren waarneem die anderen simpelweg niet opvangen. Niet omdat ze dom zijn, maar omdat hun brein het voor hen wegfiltert. Het mijne doet dat niet. En dus zie ik de aanname die niet is uitgesproken. De logische stap die is overgeslagen. De conclusie die niet volgt uit wat ervoor is gezegd.
McDD wordt vaak beschreven in termen van wat het moeilijk maakt. De emotieregulatie die anders werkt. De sociale signalen die je verkeerd kunt lezen. De grens tussen fantasie en realiteit die soms vervaagt. Dat is allemaal waar. Maar er is een kant die zelden wordt benoemd: de intensiteit waarmee je de wereld verwerkt, kan ook een soort scherpte opleveren. Een onvermogen om oppervlakkig te blijven. Een dwang om door te gaan tot je de kern hebt gevonden. En die dwang is precies wat deductief denken voedt.
Voorbij de implementatie
In de softwarewereld wordt deductief denken vaak gereduceerd tot een methode. Je begint met principes, je leidt er logische gevolgen uit af, en je bouwt daarop voort. Dat klopt, maar het is slechts een fractie van wat het is.
Deductief denken verandert hoe je naar een heel probleem kijkt. Het gaat niet over hoe je iets bouwt, maar over of je het uberhaupt moet bouwen. Het gaat over de vraag die voor de vraag komt. Voordat ik nadenk over architectuur, denk ik na over aannames. Voordat ik nadenk over implementatie, denk ik na over of het probleem correct is geformuleerd.
En dat is waar de meeste mensen stoppen. Het probleem is gegeven, de oplossingsrichting is gekozen, en er wordt gebouwd. Maar als het probleem verkeerd is geformuleerd, dan is zelfs de meest elegante implementatie een antwoord op de verkeerde vraag. Deductief denken beschermt je daartegen. Het dwingt je om bij het fundament te beginnen en pas verder te gaan als dat fundament solide is.
Hoe dat eruitziet in code
Laat me het concreet maken. Stel dat je een functie moet schrijven die korting berekent op basis van klanttype. Een simpel probleem, maar de manier waarop je erover nadenkt verandert alles.
De inductieve aanpak
Een inductief denkende ontwikkelaar kijkt naar wat er eerder heeft gewerkt. Er zijn voorbeelden, er zijn patronen, en die worden gevolgd.
function getDiscount(customerType: string): number {
if (customerType === 'gold') return 0.2
if (customerType === 'silver') return 0.1
if (customerType === 'bronze') return 0.05
return 0
}
Het werkt. Voor nu. De ontwikkelaar heeft drie gevallen gezien en daar een patroon uit afgeleid. Maar er is geen structuur. Wat als er een nieuw klanttype bijkomt? Wat als de korting afhankelijk wordt van het aankoopbedrag? Wat als dezelfde klant meerdere typen kan hebben? Er is geen fundament om op voort te bouwen. Er is alleen een lijst die groeit.
De abductieve aanpak
Een abductief denkende ontwikkelaar begint bij het resultaat en werkt terug. Er is een bug, of een nieuw vereiste, en de oplossing wordt bedacht op basis van wat het probleem waarschijnlijk is.
function getDiscount(customerType: string, totalSpent: number): number {
// klant klaagde dat korting niet klopte,
// waarschijnlijk omdat we het totaal niet meenamen
let discount = 0
if (customerType === 'gold') discount = 0.2
else if (customerType === 'silver') discount = 0.1
else if (customerType === 'bronze') discount = 0.05
// fix: extra korting als ze veel hebben uitgegeven
if (totalSpent > 1000) discount += 0.05
if (totalSpent > 5000) discount += 0.05
// cap op 30% want anders gaat het mis
return Math.min(discount, 0.3)
}
Er is een gok gemaakt over wat het probleem was. Er zijn pleisters geplakt. De magische getallen vertellen je niets over waarom die waarden zijn gekozen. De cap van 30% is er "omdat het anders mis gaat", maar niemand kan uitleggen wanneer of waarom. Het is een oplossing die werkt tot de volgende klacht, en dan komt er weer een laag bovenop.
De deductieve aanpak
Een deductief denkende ontwikkelaar begint bij de regels. Wat is een klant? Wat bepaalt korting? Welke principes gelden er, en wat volgt daar logisch uit?
interface DiscountPolicy {
readonly percentage: number
appliesTo(context: PurchaseContext): boolean
}
interface PurchaseContext {
readonly customerTier: CustomerTier
readonly lifetimeSpend: number
readonly currentOrderTotal: number
}
type CustomerTier = 'bronze' | 'silver' | 'gold'
// Elke regel is expliciet, toetsbaar, en onafhankelijk
const tierDiscount: DiscountPolicy = {
percentage: 0, // wordt bepaald door tier
appliesTo: (ctx) => true,
}
function resolveTierPercentage(tier: CustomerTier): number {
const tiers: Record<CustomerTier, number> = {
bronze: 0.05,
silver: 0.10,
gold: 0.20,
}
return tiers[tier]
}
function calculateDiscount(
policies: DiscountPolicy[],
context: PurchaseContext,
maxDiscount: number
): number {
const applicable = policies.filter(p => p.appliesTo(context))
const total = applicable.reduce((sum, p) => sum + p.percentage, 0)
return Math.min(total, maxDiscount)
}
Het verschil is fundamenteel. Er zijn geen magische getallen. Er zijn geen impliciete aannames. Elke regel is een expliciet principe dat je kunt lezen, toetsen en in twijfel trekken. De maxDiscount is geen pleister, het is een bewuste bedrijfsregel die als parameter wordt meegegeven. Het type systeem dwingt af dat je geen klanttype kunt verzinnen dat niet bestaat. En wanneer er een nieuw vereiste komt, voeg je een DiscountPolicy toe in plaats van een if-statement.
Wat dit laat zien
Het verschil zit niet in de hoeveelheid code. Het zit in de richting van het denken.
Inductief: ik heb gevallen gezien, dus ik schrijf code die die gevallen afhandelt. Abductief: er is een probleem, dus ik bedenk wat het waarschijnlijk veroorzaakt en patch het. Deductief: ik ken de regels, dus ik ontwerp een structuur waarin die regels logisch worden afgedwongen.
De inductieve code werkt tot er een geval komt dat je niet had voorzien. De abductieve code werkt tot de pleisters elkaar gaan tegenspreken. De deductieve code werkt omdat de logica het ondersteunt, niet omdat je geluk hebt gehad.
En dat is precies het punt. Het gaat niet om een voorkeur voor een stijl. Het gaat erom dat deductief denken je dwingt om de vraag te stellen die je code beschermt tegen alles wat je nog niet weet.
Het is niet beperkt tot techniek
Wat ik in de loop der jaren heb ontdekt, is dat deductief denken zich niet beperkt tot technische vraagstukken. Het sijpelt door in alles. Hoe ik gesprekken voer. Hoe ik conflicten benader. Hoe ik naar de wereld kijk.
Als iemand iets beweert, zoek ik automatisch naar de structuur van het argument. Niet om dwars te liggen, maar omdat ik wil begrijpen of de conclusie echt volgt uit de premissen, of dat er ergens een sprong is gemaakt die niet klopt. Dat is geen keuze. Het is hoe mijn brein werkt. Door McDD neem ik de wereld intenser waar, maar ik verwerk die informatie ook anders. Ik kan niet zomaar iets accepteren dat logisch niet sluit. Het voelt fysiek oncomfortabel, alsof er iets scheef hangt dat ik moet rechtzetten.
Dat maakt me soms lastig in gesprekken. Mensen willen doorpakken en ik stel nog een vraag. Mensen willen consensus en ik benoem een tegenspraak. Niet om gelijk te krijgen, maar omdat ik het niet kan laten. De inconsistentie zien en er niets mee doen voelt voor mij als liegen.
En hier zit iets wat specifiek is aan McDD. Het gaat niet alleen om logisch denken. Het gaat om de emotionele lading die erbij komt. Als ik een tegenspraak zie en die niet mag benoemen, dan voelt dat niet als een klein ongemak. Het stapelt zich op. Het wordt een druk die ik fysiek voel. Mijn emotieregulatie werkt anders, dat is een kernkenmerk van McDD, en dat betekent dat de frustratie van niet gehoord worden niet langzaam opbouwt maar in golven komt. Soms te groot voor de situatie. Soms op momenten die anderen niet begrijpen. Niet omdat het probleem klein is, maar omdat de ophoping van al die eerdere momenten waarin ik iets zag en het niet mocht zeggen mee resoneert.
Dat is de dubbele lading. Het brein dat alles ziet, en het emotionele systeem dat alles voelt. Samen maken ze het onmogelijk om oppervlakkig te functioneren in een wereld die oppervlakkigheid beloont.
Zien wat er niet gezegd wordt
Een van de dingen die deductief denken mij geeft, is het vermogen om te zien wat er niet expliciet wordt uitgesproken. In een vergadering, in een architectuurvoorstel, in een gesprek met iemand die zegt dat alles prima gaat. Er zit altijd iets onder het oppervlak. Een aanname die niet is getoetst. Een gevolg dat niemand heeft doorgedacht. Een afhankelijkheid die pas zichtbaar wordt wanneer je de logica tot het einde doortrekt.
Dat is niet intuïtie. Intuïtie is een gevoel zonder duidelijke herkomst. Wat ik doe is anders. Het voelt soms als intuïtie, maar als ik het uitpak, is er een keten van redeneringen die ik kan laten zien. A leidt tot B, B impliceert C, en C is in strijd met wat er wordt voorgesteld. Dat is geen buikgevoel. Dat is een logische afleiding die zich in mijn hoofd sneller voltrekt dan ik hem kan uitspreken.
Het probleem is dat mensen die keten niet altijd willen zien. Ze willen het eindpunt. De conclusie. En als die conclusie ongemakkelijk is, wordt de hele redenering in twijfel getrokken. Niet inhoudelijk, maar persoonlijk. "Jij ziet overal problemen." Nee. Ik zie de logische gevolgen die jullie overslaan.
Deductief denken als levenshouding
Er is een moment geweest waarop ik besefte dat dit niet iets is wat ik aan- en uitzet. Het is niet iets wat ik doe wanneer het nuttig is en park wanneer het niet uitkomt. Het is hoe ik ben. Het is hoe mijn McDD-brein de wereld verwerkt.
Ik loop door de supermarkt en ik zie systemen. Hoe de looproute is ontworpen om je langs bepaalde producten te leiden. Hoe de prijsstelling werkt met psychologische trucs. Hoe het hele concept van "korting" een deductief onhoudbare belofte is als je de oorspronkelijke marge kent.
Ik luister naar een politicus en ik ontleed het argument. Niet de emotie, niet de retoriek, maar de logische structuur. En bijna altijd vind ik de fout. De premisse die stilzwijgend wordt aangenomen. De conclusie die niet volgt uit wat ervoor is gezegd. De drogreden die zo vloeiend wordt gepresenteerd dat niemand hem opmerkt.
Dat is vermoeiend. Ik kan niet niet zien. Ik kan niet zomaar accepteren en doorgaan. Mijn brein pakt alles uit, legt het naast de logica, en als het niet past, dan voelt het alsof er iets mis is. Niet met de wereld, maar in de ruimte tussen wat er wordt gezegd en wat er waar is.
En dat is waar McDD het extra zwaar maakt. Want het gaat niet alleen om het zien. Het gaat om het voelen. Elke inconsequentie die ik waarneem brengt een emotionele reactie met zich mee. Niet altijd groot, maar altijd aanwezig. Een lichte irritatie bij een slordig argument. Een diepe frustratie bij een bewuste verdraaiing. Een soort verdriet wanneer ik zie dat iemand zichzelf voor de gek houdt en het oprecht niet doorheeft. Mijn brein scheidt het logische niet van het emotionele. Ze zijn verweven. Elke gedachte heeft een gevoel, en elk gevoel heeft een gedachte. Dat is wat McDD doet. Het maakt de grens tussen denken en voelen poreus. En in een wereld die verwacht dat je die twee netjes gescheiden houdt, is dat een constante bron van wrijving.
De eenzaamheid van helderheid
En dat brengt iets met zich mee waar ik niet omheen kan: eenzaamheid. Niet de eenzaamheid van alleen zijn, maar de eenzaamheid van zien wat anderen niet zien en er niet over kunnen praten. Want als je het uitspreekt, klinkt het als kritiek. Als je het laat zien, voelt het als aanval. En als je het voor je houdt, vreet het aan je.
Het is een paradox die ik niet heb opgelost. Deductief denken als manier van zien geeft me helderheid. Maar die helderheid wordt niet altijd gewaardeerd. Sterker nog, in veel sociale en professionele situaties wordt het actief ontmoedigd. Niet expliciet, maar impliciet. Door de blikken wanneer je weer een vraag stelt. Door de zucht wanneer je een risico benoemt. Door het label "te kritisch" dat je krijgt opgeplakt.
Maar ik kan het niet uitzetten. En inmiddels wil ik dat ook niet meer.
Wat mensen niet begrijpen is dat dit voor mij geen keuze is tussen wel of niet kritisch zijn. McDD betekent dat mijn brein niet over een "dimknop" beschikt. Ik kan niet besluiten om vandaag eens wat minder scherp te kijken. De intensiteit is er altijd. In goede gesprekken maakt het me de persoon die precies de juiste vraag stelt. In moeilijke situaties maakt het me de persoon die niet kan loslaten. En het verschil tussen die twee wordt niet bepaald door mij, maar door hoe de ander ermee omgaat. Dat is misschien wel het meest kwetsbare eraan. Dezelfde eigenschap die me waardevol maakt, is de eigenschap die me buitensluit. Het hangt volledig af van de bereidheid van de ander om te luisteren.
De kracht die eruit voortkomt
Want ondanks de wrijving, ondanks de eenzaamheid, levert het iets op dat ik niet zou willen missen. Een diepte van begrip die ik nergens anders vandaan kan halen. Het vermogen om een complex systeem te bekijken en te begrijpen hoe alle onderdelen met elkaar samenhangen. Niet door elk onderdeel apart te bestuderen, maar door de logische verbanden ertussen te zien.
In mijn werk betekent dat dat ik problemen voorzie die er nog niet zijn. Dat ik architecturen ontwerp die niet alleen nu werken, maar die logisch consistent zijn met toekomstige vereisten. Dat ik code schrijf die niet alleen functioneert, maar die klopt. Waarin elke beslissing een logische reden heeft die terug te voeren is op een principe.
In mijn leven betekent het dat ik mensen soms beter begrijp dan ze zichzelf begrijpen. Niet omdat ik slimmer ben, maar omdat ik de structuur zie achter wat ze zeggen. De angst achter de boosheid. De onzekerheid achter de stelligheid. De vraag achter het antwoord.
Het verschil met "goed nadenken"
Ik wil duidelijk zijn: dit is niet hetzelfde als "goed nadenken". Iedereen kan leren om beter te redeneren, om aannames te toetsen, om logischer te werk te gaan. Maar wat ik beschrijf gaat verder dan een vaardigheid. Het is een manier van waarnemen die altijd aan staat. Het is niet iets wat ik doe. Het is iets wat ik ben.
En dat komt direct voort uit hoe mijn brein is gevormd. McDD geeft me een verwerking van de wereld die intenser is, gedetailleerder, en minder gefilterd. Waar anderen automatisch informatie weggooien die niet relevant lijkt, neemt mijn brein alles mee. En vervolgens zoekt het naar de logica erin. Naar de samenhang. Naar de regels die eronder liggen.
Soms is dat overweldigend. Soms wou ik dat ik het kon dimmen. Maar het is ook de bron van alles wat ik goed kan. Het is de reden dat ik problemen oplos die anderen niet eens herkennen. De reden dat mijn fantasie niet alleen fantasie is, maar een gereedschap dat verbindingen legt tussen dingen die logisch ver uit elkaar liggen maar fundamenteel met elkaar te maken hebben.
Wat ik hoop dat je hieruit meeneemt
Als je dit leest en je herkent het, dan wil ik dat je weet dat het geen defect is. Die onrust wanneer iets niet klopt, die drang om door te vragen, dat onvermogen om een slechte redenering te accepteren, het is geen lastige eigenschap. Het is een manier van zien die de wereld nodig heeft, ook al maakt de wereld het je niet altijd makkelijk.
En als je dit leest en je herkent het niet, maar je kent iemand bij wie dit past, wees dan geduldig. Die persoon die altijd doorvraagt, die altijd nog een laag dieper wil, die niet tevreden is met "het werkt toch?" Dat is geen weerstand. Dat is iemand die de wereld helderder ziet dan comfortabel is en daar toch iets mee probeert te doen.
"Deductief denken is geen methode die je toepast. Het is een lens die je niet kunt afzetten."
Tot slot
Deductief denken gaat veel verder dan een implementatiestijl. Het is geen truc voor betere code. Het is een manier van in de wereld staan. Van zien, van begrijpen, van niet accepteren wat niet klopt. Het maakt het leven niet makkelijker. Maar het maakt het wel eerlijker.
En voor mij, met een brein dat toch al niet stopt met zoeken, is dat genoeg.