Het verhaal van de differentiaalanalysator
Hammings eerste regel van systeemtechniek: Als je de componenten optimaliseert, zul je waarschijnlijk de systeemprestaties ruïneren.
Hij illustreert dit met een verhaal uit zijn eigen werk. Hij bediende een differentiaalanalysator — een analoge computer die differentiaalvergelijkingen oplos door mechanische integratie. De vraag groeide, dus werd een tweede eenheid besteld, om met de eerste verbonden te worden zodat beide afzonderlijk of samen konden werken.
De bouwers, trots op hun vakmanschap, verbeterden de versterkers in de nieuwe eenheid. Hamming eiste: elke verbetering mag niet ingrijpen in de algehele systeemwerking. Op aanvaardingsdag voerde hij de klassieke test uit: los y'' + y = 0 op, plot y versus y', verwacht een perfecte cirkel. Het mislukte onmiddellijk.
De oorzaak: de verbeterde versterkers trokken meer stroom door het aardingscircuit. De onvoldoende aarding, die prima werkte met de originele versterkers, liet nu lekkagestromen tussen subsystemen koppelen. De verbetering van één component (versterkers) degradeerde de interface (aarding), en het systeem mislukte.
De oplossing was triviaal — zwaardere koperen aarding — maar het principe was duidelijk: een componentverbetering verandert het interfacegedrag. De rest van het systeem was rond de oude interface ontworpen. Verbeter de component, breek de interface, degrade het systeem.
Componentoptimalisatie herkennen
Hamming zegt dat de regel 'lijkt zo redelijk: als je een geïsoleerde component beter maakt, zal het hele systeem beter zijn' — en toch is het fout. Het falen is interface-gemedieerd: de componentverbetering verandert het signaal dat de interface ziet.
Interfaces boven componenten
Hammings praktische conclusie: systeemingenieurs moeten eerst interfaces ontwerpen en verifiëren, componenten als tweede. Een perfecte component met een verbroken interface is nutteloos. Een middelmatige component met een goed gespecificeerde interface kan later verbeterd worden.
Regel 2: de randvoorwaarden (beperkingen) van een systeem zijn vaak belangrijker dan de optimale waarden binnen die grenzen. Een systeem dat ontworpen is voor maximale prestatie op het verwachte bedrijfspunt is vaak fragiel: kleine afwijkingen buiten het verwachte bereik veroorzaken storingen. Een systeem dat ontworpen is om veilig over een breed bereik te werken — met goed gedefinieerde beperkingen — is robuust.
Voorbeeld: een communicatiesysteem ontworpen voor exact 100 Mbps verkeer bij 25°C zal mislukken als het verkeer piekt naar 110 Mbps of de temperatuur stijgt naar 40°C. Een systeem ontworpen met de beperking 'mag niet meer dan 90% benutting overschrijden bij temperaturen onder 60°C' is nuttiger, zelfs als de maximale prestatie iets lager is.
De taak van de systeemingenieur: niet A of B afzonderlijk optimaliseren, maar A+B+C... als geheel optimaliseren, onderworpen aan beperkingen.
Het onderwijssysteem: mislukte systeemtechniek
Hamming past zijn eigen principe toe op onderwijs. Jarenlang hebben universiteiten individuele wiskundecursussen geoptimaliseerd: calculus is teruggebracht tot zijn essentials, lineaire algebra is opgeruimd en aangescherpt. Elke cursus, individueel beoordeeld, ziet er beter uit.
Maar als systeem bekeken, verschenen grote hiaten:
- Wiskundige inductie: nauwelijks genoemd na de middelbare school.
- Complexe getallen: kort geïntroduceerd in algebra, daarna vermeden tot laat in lineaire algebra wanneer complexe eigenwaarden verschijnen. Studenten worden tegelijk geconfronteerd met twee nieuwe, moeilijke ideeën zonder voorafgaande voorbereiding.
- Onbepaalde coëfficiënten: kort genoemd.
- Onmogelijkheidsbewijzen: bijna volledig afwezig.
- Discrete wiskunde: grotendeels genegeerd.
De optimalisatie van elke component (elk vak) creëerde interfacehiaten: ontbrekende conceptuele bruggen tussen vakken. De uitvoer van het systeem — opgeleide ingenieurs en wetenschappers — leed, hoewel de uitvoercijfers van elk vak verbeterden.
De natuurlijke drang weerstaan om het gebroken onderdeel te repareren
Hammings opmerking: het is gemakkelijk om de juiste woorden te zeggen over systeemtechniek. Zeer weinig mensen kunnen het werkelijk doen wanneer het moment komt.
De natuurlijke reactie wanneer een systeem mislukt: identificeer de meest duidelijk gebroken component en repareer deze. Dit is componentdenken. Het systeem mislukte om een reden die de interactie van componenten, interfaces en beperkingen betreft — maar de meest zichtbare fout is meestal bij één component.
De discipline van de systeemingenieur: vraag jezelf af voordat je de zichtbare fout reparaert: waarom produceerde het systeem deze fout bij deze component? Presteerde de component werkelijk onder de maat, of werd deze gevraagd buiten haar ontwerpgrenzen door de rest van het systeem te werken? Het repareren van het componentsymptoom laat de systeemfout intact.
De communicatiebottleneck in grote organisaties volgt dit patroon: een afdeling communiceert slecht (zichtbare fout). Componentoplossing: betere communicatoren aannemen. Systeemoplossing: herarchitectuur van de informatiestroomarchitectuur zodat minder communicatie nodig is voor dezelfde coördinatie.
Systeemdiagnose
Het onderscheid: een componentoplossing behandelt een symptoom. Een systeemoplossing behandelt de oorzaak. De oorzaak betreft meestal de structuur van het systeem — welke componenten bestaan, welke interfaces ze verbinden, welke beperkingen hun werking begrenzen.